wxWidgets control

I need a wxWidgets control that draws some columns. Each column is comprised of elements. Each element is comprised of an image and a text string.

## Deliverables


I need a **wxWidgets** widget that displays columned lists in an attractive manner. The best way to describe is with a drawing. See attached file.

As you can see from the attached image, there is a title and a some columns. Each element in the list is made up of a image (use wxImage internally) and a text element. The size of everything should dynamically adjust to the size of the wxWidget window. Notice that all images are the same size and so is the text . I should be able to resize the window and have everything adjust accordingly. Should be attractive with nice spacing between elements, etc. When resizing, there should be constraints on the MIN and MAX spacing between columns and rows.

Here are some functions the class must have. This is not exhaustive. Add whatever functions are necessary to adequately control the widget. Use your discretion. Every set() function should have the equivalent get() function.

//Sets the title.

setTitle(const wxString& title)

//rich add and remove functions. Here is the idea.

addElement(int row, int column, const wxImage& image, const wxString& text)

addElement(int row, int column, const wxImage& image, const wxString& text)


//Sets the font and size of the text that will be used. If these functions are used, then the font //should be fixed and no resizing should be possible. Otherwise, the font size should change as //the window is resized.


setFontSize(int size)

//Sets the max and min possible values for width and height values. If resizing hits one of these //limits, no further resizing should occur.

setImageMinBoxWidth(int width_px)

setImageMaxBoxWidth(int width_px)

setImageMinBoxHeight(int height_px)

setImageMaxBoxHeight(int height_px)

setTextMinBoxWidth(int width_px)

setTextMaxBoxWidth(int width_px)

setTextMinBoxHeight(int height_px)

setTextMaxBoxHeight(int height_px)

//sets the min and max distance allowed between each row and between each column

setMaxColumnSpacing(int pixels)

setMinColumnSpacing(int pixels)

setMaxRowSpacing(int pixels)

setMinRowSpacing(int pixels)

I am open to suggestions on the exact API (if there is a better way) but this is the basic idea.


* Must use wxWidgets exclusively. Don't use any outside libraries. Use wxWidgets classes over standard C++ classes (use wxString vs. char* or std::string)

* Drawing must use double buffering. No flickering should be visible on window moves.

* C++

* You may use sizers. I don't really care what you use to manage resizing as long as it works.

* Every function needs to be commented with a comment banner before each function explaining what it does and all relevant information (pre/post conditions, constraints)

* Needs to be able to have a custom background image. If no background image is defined, default to the color white. There should be a way to change the color of the background.

* Run on Windows

Habilidades: Programação C, Engenharia, MySQL, PHP, Arquitetura de software, Teste de Software

Veja mais: what is a string in programming, what is a class in programming, what are classes in programming, string standard functions in c, std remove if, std list c, std list, resize image background, programming what is a class, programming libraries, programming font, int size c, double programming, double in c programming, does c have classes, c programming string functions, c programming double, c programming char, char in c programming, char c programming, best programming font, best font for programming, all std list, std, banner resize

Acerca do Empregador:
( 8 comentários ) United States

ID do Projeto: #3050038

6 freelancers estão ofertando em média $327 para esse trabalho


See private message.

$391 USD in 14 dias
(42 Comentários)

See private message.

$382.5 USD in 14 dias
(48 Comentários)

See private message.

$255 USD in 14 dias
(5 Comentários)

See private message.

$170 USD in 14 dias
(2 Comentários)

See private message.

$340 USD in 14 dias
(3 Comentários)

See private message.

$425 USD in 14 dias
(0 Comentários)