Krypton-Suite / Standard-Toolkit

An update to Component factory's krypton toolkit to support .NET Framework 4.6.2 - 4.8.1 to .NET 6 - 8
BSD 3-Clause "New" or "Revised" License
392 stars 57 forks source link

[Feature Request]: Powered by Krypton Toolkit button #1009

Open giduac opened 1 year ago

giduac commented 1 year ago

Describe the solution you'd like Would it be an idea to add a Button or other type of control to emphasize the use of KToolkit and link to it and that developers can incorporate into their programs...

These options are disabled for now (06-20-2024) and will be not in V90. until there's more time. All components will be hidden from the toolbox for now.

Smurf-IV commented 1 year ago

That would be nice of developers to do that, but those sort of things go into about box's and / or license text that should be shipped with apps. Not sure what "we" as "KToolkit maintainers" would need to do ?

giduac commented 1 year ago

@Smurf-IV @Wagnerp,

A possibility would be a preconfigured group box containing some info about KT. A link to the site/GitHub. The logo. It's a possibility to shape this info and attract other developers, also a chance to create more exposure for the toolkit.

......

Smurf-IV commented 1 year ago

And as most apps have a theme changing component, then it could include that combo as well..

PWagner1 commented 1 year ago

How about a preconfigured about box?

Smurf-IV commented 1 year ago

How about a preconfigured about box?

too restrictive, AS most about boxes need to have additional info about the actual app, with areas for licensed components, and actual licensed status etc. So having a preconfigured "GroupBox" in the designer would mean the greatest flexibility

giduac commented 1 year ago
  1. Yeah, Hookup the KThemeCombo in there

    • although if a project has a fixed theme or uses only a couple of themes it would be needed to hide the Combo
    • Maybe leave that theme selection implementation to the dev...??
  2. Preconfigured Aboutbox is an option but adding an about-form to a project is no big deal. And as Surf says most projects summarize this kind of info on their own about box. (Yes and No). Rather a groupbox and a KAboutBox that uses the KAboutGroupBox..

  3. GroupBox could contain KT Version info of the Klibs loaded (if that makes sense)

Example where a preconfig wouldn't work that great: image

I think

giduac commented 1 year ago

Another option/addition would be a KAboutButton with the Logo and a text like "About KT" / "Powered by KT", which displays a KAboutForm

PWagner1 commented 1 year ago

@Smurf-IV Might be a good idea to use the KryptonLinkLabel for this, as you can specify a link area for the hyperlink

giduac commented 1 year ago

@Wagnerp @Smurf-IV, some more info that's needed I can think of,

  1. That could go as far as a link tot the Github site for support.
  2. Invitation link for the Discord server
  3. Documentation homepage
  4. etc.

I think displaying any system info would be redundant / Windows version / KLibs (since dev can see that in VStudio)..

Your input please....

PWagner1 commented 1 year ago

It needs to be a drop-in component, restricting the editing of text should be easy, translations (if required) can be done via the new KryptonLanguageManager.

PWagner1 commented 1 year ago

I don't know if we've done a KAboutForm yet... I guess we could take the default one from VB, CSharpify it, and modernise the layout? @Smurf-IV Thoughts?

Edit:

This looks good https://www.codeproject.com/Articles/7390/About-The-About-Box

image

PWagner1 commented 1 year ago

The link I posted would kill two birds with one stone, look at the GIF in the article...

giduac commented 1 year ago

@Wagnerp @Smurf-IV The (my)idea is to use a GroupBox as the (main) component that will contain all the information. That Box will be available to devs so they can add it to their own about box.

Our AboutBox will contain that GroupBox as well. Devs can launch that box by themselves. Or devs can use the KAboutButton that launches the KAboutBox

If info changes / needs updating than only the GroupBox component needs to be fixed.

I thought that might be the most simple way to do it and please all of them in one go ;)

PWagner1 commented 11 months ago

Going to try and implement this tomorrow

PWagner1 commented 11 months ago

@giduac & @Smurf-IV

First itteration

image

Thoughts?

Smurf-IV commented 11 months ago

I think it should also state the License type before the "Click here" link. The Icon needs to move down so that it appear in line with the top of the text (Or move the text up !) Documentation link is not necessary, as this is going into a published app. The Docs are for the developers, as is the discord link. Need to have a title above the Theme combo, so that the "User" of the app knows what it is.

PWagner1 commented 11 months ago

Hi @Smurf-IV

The Icon needs to move down so that it appear in line with the top of the text (Or move the text up !)

Trying to use a TableLayoutPanel isn't there some code in the KMbox which deals with something similar which could be reused?

Smurf-IV commented 11 months ago

Try using the padding option 0, 10, 0, 0

giduac commented 11 months ago

@Wagnerp @Smurf-IV My 2 cents

PWagner1 commented 11 months ago

I'm thinking to also have the option to display the version of the toolkit DLLs being used?

PWagner1 commented 11 months ago

@Smurf-IV

Try using the padding option 0, 10, 0, 0

Is that on the picturebox itself?

PWagner1 commented 11 months ago

@giduac

The theme-chooser could be a problem for devs that only use a couple of themes. In that case you don't want the user to go beyond that scope. Might also interfere with the theme chooser the dev is using already.

That can be a option the dev can turn on/off, I think you can apply a filter to it also

giduac commented 11 months ago

@giduac

The theme-chooser could be a problem for devs that only use a couple of themes. In that case you don't want the user to go beyond that scope. Might also interfere with the theme chooser the dev is using already. That can be a option the dev can turn on/off, I think you can apply a filter to it also

It also needs to be accessible to the dev if the theme selection is stored / restored on program shutdown and startup. Yeah, an option to turn it off would be ok. Anyways it should not interfere with a KManager & chooser that the dev is using already. So they can add the AboutBox to a project without a hassle.

PWagner1 commented 11 months ago

Hi @giduac

Please test using build >= .289

giduac commented 11 months ago

Cool @Wagnerp,

Will do, somewhere during the week...

PWagner1 commented 11 months ago

Hi @giduac

Have you had a chance to try this feature yet?

giduac commented 11 months ago

@Wagnerp

Only had a quick look and some ideas came up but I'm kind of busy. I'll see if there's some time over the weekend.

@Wagnerp My first thoughts:

The name of the control in the VStudio Toolbox

Headergroup I think a KHeaderGroup looks better that the KGroupbox. Imo it will add to the overall appearance.

Using a TabControl (or better a Krypton equivalent) to organize the information. Keeps the size of the box in check. Makes it easy to alter the contents without changing the control overall. Pages for:

Steps

  1. I think its best to first get the contents clear and make a good plan.
  2. Then make a functional mock-up that contains all the components / info and functionality.
  3. When the mock-up becomes final the controls can be created and tested.
PWagner1 commented 11 months ago

Hi @giduac

Using a TabControl (or better a Krypton equivalent)

Using the KryptonNavigator could cause problems, as it would mean that Krypton.Navigator.dll would be pulled in every time.

@Smurf-IV What do you think?

giduac commented 11 months ago

Hi @giduac

Using a TabControl (or better a Krypton equivalent)

Using the KryptonNavigator could cause problems, as it would mean that Krypton.Navigator.dll would be pulled in every time.

@Smurf-IV What do you think?

@Wagnerp @Smurf-IV Yeah that's what I was thinking too. To make it work Krypton Suite wide it has to be done with components from the Toolkit only.

Maybe something with panels and a toolstrip. Or instead of a toolstrip toggle buttons and panels

If you guys have ideas drop'm here and we can see what can be done with it....

PWagner1 commented 11 months ago

Hi @giduac

Using a TabControl (or better a Krypton equivalent)

Using the KryptonNavigator could cause problems, as it would mean that Krypton.Navigator.dll would be pulled in every time. @Smurf-IV What do you think?

@Wagnerp @Smurf-IV Yeah that's what I was thinking too. To make it work Krypton Suite wide it has to be done with components from the Toolkit only.

Maybe something with panels and a toolstrip. Or instead of a toolstrip toggle buttons and panels

If you guys have ideas drop'm here and we can see what can be done with it....

@giduac @Smurf-IV

The only other way to do it is to implement a KryptonTabControl?

PWagner1 commented 11 months ago

@giduac & @Smurf-IV

I think a separate window/button would be too restrictive. Having a user control would have more flexibility. Thoughts?

giduac commented 11 months ago

@Wagnerp

Imho,

The KAboutBox: is the central component and contains all info. Which can be added to a custom form by the dev.

The KAboutDialog: is a window which only contains the KAboutBox. This dialog can be invoked by the dev and added to an app with a couple of lines of code. (provide sample code snippet in the docs)

The KABoutButton: can be added to a form by the dev and is a preconfigured button with the logo and short text ( for example: Powered by Krypton Suite or something in that direction). The button launches the KAboutDialog.

The KAboutButton is the easiest way for a dev to add info to an app. Drop the button, and all else is taken care of.

If they want to integrate it in to their own about window they can go with the KABoutBox.

If they want to use their own button they can lauch the KABoutDialog

Side note: If the info gets more complete I will update the topic start and turn all of it in to a bit of a plan.

PWagner1 commented 11 months ago

@giduac

I do have an idea, but every time I test it I get this

image

giduac commented 11 months ago

Which resources..... ?

PWagner1 commented 11 months ago

Which resources..... ?

Think the toolstrip default 'embedded' resources was the cause... that message is too vague MS should do better

PWagner1 commented 10 months ago

@giduac & @Smurf-IV

Progress so far...

1009

Toolbars hate images, so using text

giduac commented 10 months ago

@Wagnerp Will see if I can spend some more time on it in a week or 2 or 3, to busy atm.

It's not a priority request so... ;)

PWagner1 commented 10 months ago

Hi @giduac

The feature is now in nightly build >= .310

giduac commented 9 months ago

Hi @Wagnerp

I had a brief look at it.

Can you please elaborate a bit here on the two components KryptonAboutToolkit and KryptonAboutBox. How these differ from each other and/or are intended.

PWagner1 commented 9 months ago

Hi @Wagnerp

I had a brief look at it.

Can you please elaborate a bit here on the two components KryptonAboutToolkit and KryptonAboutBox. How these differ from each other and/or are intended.

Hi @giduac

Sure, so the KryptonAboutToolkit shows the details about the toolkit, and the KryptonAboutBox shows information about your application, by pulling information from the binary.

I hope this helps.

giduac commented 9 months ago

Just thought on that and the previous ideas.

How about to combine the information from both dialogs into one. Maybe said better, add the application info as a separate page/button?

And on the previous ideas. Just use this one form and only add a button to the toolbox window which invokes the dialog.

Altogether that would save a bit of work and still work as a whole?

PWagner1 commented 9 months ago

Just thought on that and the previous ideas.

How about to combine the information from both dialogs into one. Maybe said better, add the application info as a separate page/button?

And on the previous ideas. Just use this one form and only add a button to the toolbox window which invokes the dialog.

Altogether that would save a bit of work and still work as a whole?

Will work on it this week :)

PWagner1 commented 3 months ago

Hi @giduac

Is this still needed?

giduac commented 3 months ago

Imo to leave this open for later on when there's time left. An for now turn the already present items off in the Toolbox.

Keep it for a rainy day... :)

giduac commented 3 months ago

I'll make a pr turning them off for now

PWagner1 commented 3 months ago

I'll make a pr turning them off for now

v100?

giduac commented 3 months ago

Definitely.

All this stuff can go on the back burner until we have things sorted and well under control. From there on those can be reviewed, prioritized, planned and further executed.

PWagner1 commented 3 months ago

Definitely.

All this stuff can go on the back burner until we have things sorted and well under control. From there on those can be reviewed, prioritized, planned and further executed.

Trying to be stricter. I think a list needs to be created for what to do for v90.

giduac commented 3 months ago

Time is at a premium...

Actually we should look actively to attract one or two more persons at least to take the pressure off

PWagner1 commented 3 months ago

Time is at a premium...

Actually we should look actively to attract one or two more persons at least to take the pressure off

Post a message on Discord?