What gui library did you use ?

doood

What gui library did you use ?

Postby doood » Mon Feb 15, 2010 9:18 am

Hi,

i just tried CintaNotes and really liked it, it's pretty lightweight and perfect as a small notes taking app.
However I'm just curious to know what kind of gui framework and programming language did you use to make it ?

Sorry for my english (i hope it's not so bad...)
Thx a lot
User avatar
CintaNotes Developer
Site Admin
Posts: 5002
Joined: Fri Dec 12, 2008 4:45 pm
Contact:

Re: What gui library did you use ?

Postby CintaNotes Developer » Mon Feb 15, 2010 1:21 pm

Hello doood,

glad you liked CintaNotes. I used Visual C++ and raw WinAPI to build it. My own GUI library (the "ui" namespace) contains just the stuff CintaNotes needs at the moment, and I extend it as soon as I need more functionality. This allows me to both work at a high level of abstraction, to know the library really well, and not to be dependent on any third-party GUI library.
Alex
doood

Re: What gui library did you use ?

Postby doood » Tue Feb 16, 2010 1:04 pm

Hello,

Thanks for your response. It must have been a pain to develop the GUI in WinAPI but the result is great.
I am planning to code a free small file manager and i'm considering using WinAPI too, to make it light and fast.

How have you created the advanced controls (like the list of selectable notes), do you draw everything using GDI or is there some WinAPI controls that i am missing ? I'm a java programmer so i don't know WinAPI really much and it's hard to find good examples on the net.

thx
User avatar
CintaNotes Developer
Site Admin
Posts: 5002
Joined: Fri Dec 12, 2008 4:45 pm
Contact:

Re: What gui library did you use ?

Postby CintaNotes Developer » Fri Feb 19, 2010 5:38 am

Thanks for your response. It must have been a pain to develop the GUI in WinAPI but the result is great.
I am planning to code a free small file manager and i'm considering using WinAPI too, to make it light and fast.


Yes it is, the main point here is to provide yourself with the needed abstractions and primitives as soon as possible.
But I guess you should try some library like wxWidgets or Qt first. When I started development, Qt wasn't LGPL, now it is.


How have you created the advanced controls (like the list of selectable notes), do you draw everything using GDI or is there some WinAPI controls that i am missing ?


Yes, it's pretty much all hand-coded custom drawing. The control you're referring to is called NotesList and is built out of the following classes (indentation means composition):

Code: Select all

NotesList - main class representing the control itself, inherits from Control (from my UI-library) class. Handles all window messages.
      NoteRenderer - given a rectangle and a note, is responsible for rendering the latter in the first.
               HiliteManager - calculates positions of search highlights
               NoteTextFormatter - breaks note's text into renderable lines
      ScrollController - responsible for scrolling the control's contents and updating the scrollbar.
               ListController - abstract engine which models a viewport into a list of varied-height elements.
      StateManager - manages current focus, selection and reading positions (for in-place reading using left-right arrows).
               Cursor - manages focus
               Selection - manages selection
               ReadPosManager - manages reading positions


I always prefer composition to inheritance and it has worked pretty well for me.
Alex
ElQ
Posts: 2
Joined: Mon Jun 21, 2010 1:57 pm
Contact:

Re: What gui library did you use ?

Postby ElQ » Sat Dec 18, 2010 12:32 pm

CintaNotes Developer wrote: I used Visual C++ and raw WinAPI to build it.

Holly $&!% - veryyyy good, nice and small program ! ;)

Please, tell us some more details about Visual C++ (version etc).

THX
User avatar
CintaNotes Developer
Site Admin
Posts: 5002
Joined: Fri Dec 12, 2008 4:45 pm
Contact:

Re: What gui library did you use ?

Postby CintaNotes Developer » Tue Dec 28, 2010 7:48 pm

Please, tell us some more details about Visual C++ (version etc).


I use Visual Studio 2008, Boost 1.44 and SQLite.

And thanks for the compliments!
Alex

Return to “CintaNotes Personal Notes Manager”