no_cat.meme
Forget about codelite. tomorrow you might be using anything else and on the third day you may find yourself using vim.
Just write your class like you would any other class. You drop it into a project by "add existing item" or the equivalent in your IDE, or even just compiling it as a library then #including the relevent headers and linking against it when you need it.
but the point here I suppose is to be
generic. That way it can be used in this project, and in your future stock ticker project and in your fighter jet HUD project, and in your pet feeder project and in ...
So without cramming a bunch of terminology down your throat, let me give you an analogy.
Right now you need a screwdriver with a pointy end. Tomorrow you might need a screwdriver with a flat end.
So you have two options.
1)You can either make two different screwdrivers that are essentially the same except for the ends.
OR
2)You can make a single screwdriver with interchangeable ends, so if at some point you need a screwdriver with a different end than what you have, all you have to do is make the end bit.
The option you need to pick is 2.
in C++ this can be done with "virtual" functions.
As an additional tip, try not to #include anything that isn't absolutely necessary. like if you #include <boost>, then you will have to use boost in any project that uses your class.
here are some links to give you some idea
https://en.wikipedia.org/wiki/Virtual_inheritance
and on this page look at the graph, and then the function list below it. then see how it relates to the wxwidgets source code and how the source directories are laid out.
http://docs.wxwidgets.org/trunk/classwx_frame.html