New GUI Framework for kX Plugin Dev.

Discussion in 'Effects and the DSP' started by Lex Nahumury, Feb 2, 2006.

  1. Lex Nahumury

    Lex Nahumury DH Senior Member

    Joined:
    Jan 5, 2003
    Messages:
    1,944
    Likes Received:
    6
    Trophy Points:
    0
    New: GUI Framework for kX Plugin Dev.

    @Developers;
    CLXGUI v1.0(alpha -debug)

    http://members.home.nl/nahutec/clxgui/clxgui_shot_silver.PNG
    http://members.home.nl/nahutec/clxgui/clxgui_shot_bleu.PNG
    http://members.home.nl/nahutec/clxgui/clxgui_shot_classic.PNG

    I wrote this Framework entirly from scratch using WIN32 API only.
    No MFC, ATL, WTL or any other library is used.

    Currently offers the next Windows common controls;
    - Slider (Trackbar)
    - Buttons
    - Checkbox
    - ComboBox
    - Static (colororized)
    - Edit control (colororized)

    ..and skinnable control objects;
    - Slider (operable by mouse,wheel and keys)
    - Rotary Knob (operable by mouse,wheel and keys)
    - Buttons (2-state and momentary)
    - Indicator
    - Peak meter/Level Indicator

    All these controls are subclassed and wrapped in easy
    to use classes thereby 'hiding' the usual
    message handling from the programmer.

    To avoid discussions about 'Looks&Feel', I decided to use
    Windows native look with XP-Theming support, and to put
    default kX Items Reset, Mute, Bypass and Preset on the menu bar.

    So the plugin's client area can either be 'skinned' or 'plain' Windows.
    This is about the same approach as VSTGUI.
    (host provides an OS-specific frame with caption,border, and default controls)
    At least you don't have to worry about skinning the default kX items!

    Other Features&Options:
    - tooltips (independant text)
    - hand cursor for controls
    - 'Always On top' (keep visible)
    - drag on content
    - kX Fx Quick launch menu
    - auto-(re)size to background bitmap
    etc..

    Writing a kX Plugin using this framework is practicly the
    same as with KXGUI (and hopefully even easier).

    Well there's more to tell ofcourse but since kX coders can be count
    on less then one hand they can contact me (here,mail or private)
    if they are interested and wish to recieve the h&lib,
    and perhaps want to help in testing, bug hunting, solving issues, suggestions etc.

    /Lex N.
     
    Last edited: Mar 9, 2006
  2. dj_stick

    dj_stick Apple Fanboy?

    Joined:
    Jun 3, 2003
    Messages:
    17,575
    Likes Received:
    204
    Trophy Points:
    88
    looking good, i like the idea
     
  3. townkat

    townkat New Member

    Joined:
    Sep 25, 2003
    Messages:
    123
    Likes Received:
    0
    Trophy Points:
    0
    this is really nice, i sincerly like it, thnx LeMury

    dont forget about the text boxes :)

    ohh.. i almost forgot.. Congratulations!! :)

    ps. maybe u'll update profx to 3538i now cause the included vresion is an old one..

    cya
     
  4. Maddogg6

    Maddogg6 Tail Razer

    Joined:
    Jun 21, 2005
    Messages:
    4,027
    Likes Received:
    26
    Trophy Points:
    0
    Oh - I LOVE those knobs and buttons....

    It amazing how much talent thats found in these forums....

    Its very humbleing...

    NICE WORK! FOR SURE.
     
  5. Russ

    Russ Well-Known Member

    Joined:
    Jan 17, 2005
    Messages:
    5,722
    Likes Received:
    13
    Trophy Points:
    48
    Looks and sounds great! Nice work :)

    BTW: What is up with that GuitarAmp, is that a real plugin?
     
  6. thomasabarnes

    thomasabarnes Long Time ***** Friend

    Joined:
    Jan 7, 2003
    Messages:
    1,404
    Likes Received:
    13
    Trophy Points:
    48
    Great look LeMury. Sorry for posting in this thread, me not being a kX programmer and all.
     
  7. Lex Nahumury

    Lex Nahumury DH Senior Member

    Joined:
    Jan 5, 2003
    Messages:
    1,944
    Likes Received:
    6
    Trophy Points:
    0
    Yes, and the EQ10m is a mono version of max's EQ10, the peak just a test/demo
    I used for the peak class and Led class.
     
  8. Russ

    Russ Well-Known Member

    Joined:
    Jan 17, 2005
    Messages:
    5,722
    Likes Received:
    13
    Trophy Points:
    48
    Sweet :)
    You have been busy.

    Sorry for going off topic, but I had to ask when I saw that pic.
     
  9. Tril

    Tril Triple screen racing ftw

    Joined:
    Sep 26, 2004
    Messages:
    1,665
    Likes Received:
    19
    Trophy Points:
    48
    Good work Lemury. Everything you program for the kX plugin is always of very high quality.

    I could personally use KXGUI but it will make it easier for others to reuse my code if they ever want to make a plugin based on a plugin I write. It will also give an example of how to use CLXGUI to others. It also has some nice new features compared to KXGUI.

    I'm interested. I could use it for my next plugin. I can't help much with testing, bug hunting and solving issues but if I use it, I'll report to you if I encounter any problems.

    Some questions :
    Where does the name CLXGUI come from?
    Did you write a small tutorial on how to use it?
    Did you comment clearly all the functions the programmers will use?
    Do you have an example plugin that you wrote using it to give an example of how it should be used?
     
  10. Lex Nahumury

    Lex Nahumury DH Senior Member

    Joined:
    Jan 5, 2003
    Messages:
    1,944
    Likes Received:
    6
    Trophy Points:
    0
    @Tril;

    The original idea was to provide a non-MFC based custom GUI framework for kX.
    That never happened due to lack of time.
    While KXGUI is fine for quick non-skinned plugin dev., anyone who ever tried to
    write a skinned plugin can confirm that KXGUI has some strange quirks and
    limitations when it comes to customization.
    Also skinned KXGUI plugins can be quite CPU consuming and act 'sluggish'.

    CLXGUI tries to address these issues, but will probably introduce new ones as well:cool: .

    >>Some questions :
    >>Where does the name CLXGUI come from?
    While coding I needed an alternative class name for CKXPluginGUI.
    Hence the prefix CLX instead of CKX, 'L' beeing my first name's initial (lame I know).

    >>Did you write a small tutorial on how to use it?
    No, but it really isn't hard to use and I'm here to help.
    >>Did you comment clearly all the functions the programmers will use?
    No, but the class member functions in the headers are descriptive enough.
    i.e. for a skinned Button;

    virtual int Create(int ID, int left, int top, CLXPluginGUI* _parent,
    HBITMAP _off, HBITMAP _on, char* tooltxt=0);

    ....leaves little to guess.

    >>Do you have an example plugin that you wrote using it to give an example
    >>of how it should be used?
    Yes of course. Both skinned as well as 'normal'.

    Also; using CLX is (and looks) almost the same as using KXGUI,
    so it's not like.."huh?? what is going on here" when you look at the plugin code.
     
    Last edited: Feb 3, 2006
  11. Lex Nahumury

    Lex Nahumury DH Senior Member

    Joined:
    Jan 5, 2003
    Messages:
    1,944
    Likes Received:
    6
    Trophy Points:
    0
    You mean Edit controls right?
    If so, yes, normal Edit control is easy to add and I'm currently writing
    a skinned (colored) Edit control. (which seems to be harder then I expected..hmm[EDIT] done!)

    Anyway;
    The idea is that I would add extra control objects to the framework on
    programmers request as time goes by.
     
    Last edited: Feb 3, 2006
  12. townkat

    townkat New Member

    Joined:
    Sep 25, 2003
    Messages:
    123
    Likes Received:
    0
    Trophy Points:
    0
    yup, edit control

    cool

    thnx :)
     
  13. Lex Nahumury

    Lex Nahumury DH Senior Member

    Joined:
    Jan 5, 2003
    Messages:
    1,944
    Likes Received:
    6
    Trophy Points:
    0
    But what do you want to use it for?
    Simple setText and getText application,
    or string to data conversion that call into set_param()??

    Currently I only support text strings for labeling purposes
    which do not call into set_param() ofcourse.
     
  14. townkat

    townkat New Member

    Joined:
    Sep 25, 2003
    Messages:
    123
    Likes Received:
    0
    Trophy Points:
    0
    i wasn't expecting that they will work with get/set_param,

    i need them for my mixy plugin channel labels (i use cedit now but if i will move to your framework i was thinkin to only use your objects)
     
  15. Lex Nahumury

    Lex Nahumury DH Senior Member

    Joined:
    Jan 5, 2003
    Messages:
    1,944
    Likes Received:
    6
    Trophy Points:
    0
    Ah, Ok, that should work fine (same way I use it for mx6).
    Perhaps I'll add pure numerical input->set_param() functionality later
    since that is quite some extra work.
     
  16. zaboomafoo

    zaboomafoo New Member

    Joined:
    Jan 15, 2006
    Messages:
    28
    Likes Received:
    0
    Trophy Points:
    0
    Hello Lex,

    How could I get hold of this nice gui framework? Is it available for download somewhere? I would like to use it for the plugin I am working on.

    Regards,
    Frank
     
  17. Lex Nahumury

    Lex Nahumury DH Senior Member

    Joined:
    Jan 5, 2003
    Messages:
    1,944
    Likes Received:
    6
    Trophy Points:
    0
    (Woow, this was 2,5 year ago, time really does fly..)

    Anyway;
    Sorry, the framework is not available.
    To few interested coders + to much work to maintain etc etc..
     
  18. zaboomafoo

    zaboomafoo New Member

    Joined:
    Jan 15, 2006
    Messages:
    28
    Likes Received:
    0
    Trophy Points:
    0

Share This Page

visited