Refactored jlabel widget to Label class.

This commit is contained in:
David Capello 2010-07-03 13:48:14 -03:00
parent 449cdd686f
commit cb0488b50b
9 changed files with 68 additions and 66 deletions

View File

@ -56,12 +56,12 @@ void AboutCommand::execute(Context* context)
FramePtr window(new Frame(false, _("About " PACKAGE))); FramePtr window(new Frame(false, _("About " PACKAGE)));
box1 = jbox_new(JI_VERTICAL); box1 = jbox_new(JI_VERTICAL);
label1 = jlabel_new(PACKAGE " | Allegro Sprite Editor v" VERSION); label1 = new Label(PACKAGE " | Allegro Sprite Editor v" VERSION);
label2 = jlabel_new(_("A pixel art program")); label2 = new Label(_("A pixel art program"));
separator1 = ji_separator_new(NULL, JI_HORIZONTAL); separator1 = ji_separator_new(NULL, JI_HORIZONTAL);
label3 = jlabel_new(COPYRIGHT); label3 = new Label(COPYRIGHT);
label4 = jlabel_new(WEBSITE); label4 = new Label(WEBSITE);
textbox = jtextbox_new("Authors:\n\n" textbox = jtextbox_new("Authors:\n\n"
" David Capello\n" " David Capello\n"
" - Project leader and developer\n\n" " - Project leader and developer\n\n"

View File

@ -69,13 +69,13 @@ void LayerPropertiesCommand::execute(Context* context)
box1 = jbox_new(JI_VERTICAL); box1 = jbox_new(JI_VERTICAL);
box2 = jbox_new(JI_HORIZONTAL); box2 = jbox_new(JI_HORIZONTAL);
box3 = jbox_new(JI_HORIZONTAL + JI_HOMOGENEOUS); box3 = jbox_new(JI_HORIZONTAL + JI_HOMOGENEOUS);
label_name = jlabel_new(_("Name:")); label_name = new Label(_("Name:"));
entry_name = jentry_new(256, layer->get_name().c_str()); entry_name = jentry_new(256, layer->get_name().c_str());
button_ok = jbutton_new(_("&OK")); button_ok = jbutton_new(_("&OK"));
button_cancel = jbutton_new(_("&Cancel")); button_cancel = jbutton_new(_("&Cancel"));
if (with_blend_modes) { if (with_blend_modes) {
label_bm = jlabel_new(_("Blend mode:")); label_bm = new Label(_("Blend mode:"));
view_bm = jview_new(); view_bm = jview_new();
list_bm = jlistbox_new(); list_bm = jlistbox_new();

View File

@ -71,14 +71,14 @@ void dialogs_mask_color(Sprite* sprite)
box2 = jbox_new(JI_HORIZONTAL); box2 = jbox_new(JI_HORIZONTAL);
box3 = jbox_new(JI_HORIZONTAL); box3 = jbox_new(JI_HORIZONTAL);
box4 = jbox_new(JI_HORIZONTAL | JI_HOMOGENEOUS); box4 = jbox_new(JI_HORIZONTAL | JI_HOMOGENEOUS);
label_color = jlabel_new(_("Color:")); label_color = new Label(_("Color:"));
button_color = colorbutton_new button_color = colorbutton_new
(get_config_color("MaskColor", "Color", (get_config_color("MaskColor", "Color",
app_get_colorbar()->getFgColor()), app_get_colorbar()->getFgColor()),
sprite->getImgType()); sprite->getImgType());
button_1 = jbutton_new("1"); button_1 = jbutton_new("1");
button_2 = jbutton_new("2"); button_2 = jbutton_new("2");
label_fuzziness = jlabel_new(_("Fuzziness:")); label_fuzziness = new Label(_("Fuzziness:"));
slider_fuzziness = slider_fuzziness =
jslider_new(0, 255, get_config_int("MaskColor", "Fuzziness", 0)); jslider_new(0, 255, get_config_int("MaskColor", "Fuzziness", 0));
check_preview = jcheck_new(_("&Preview")); check_preview = jcheck_new(_("&Preview"));

View File

@ -174,7 +174,7 @@ static Frame* create_alert(char *buf, JList *labels, JList *buttons)
window = new Frame(false, beg); window = new Frame(false, beg);
} }
else if (label) { else if (label) {
JWidget label = jlabel_new(beg); Label* label = new Label(beg);
label->setAlign(align); label->setAlign(align);
jlist_append(*labels, label); jlist_append(*labels, label);
} }

View File

@ -206,7 +206,7 @@ static JWidget convert_xmlelement_to_widget(TiXmlElement* elem)
else if (ustrcmp(elem_name, "label") == 0) { else if (ustrcmp(elem_name, "label") == 0) {
const char *text = elem->Attribute("text"); const char *text = elem->Attribute("text");
widget = jlabel_new(text ? TRANSLATE_ATTR(text): NULL); widget = new Label(text ? TRANSLATE_ATTR(text): NULL);
if (widget) { if (widget) {
bool center = bool_attr_is_true(elem, "center"); bool center = bool_attr_is_true(elem, "center");
bool right = bool_attr_is_true(elem, "right"); bool right = bool_attr_is_true(elem, "right");

View File

@ -200,7 +200,7 @@ char *ji_file_select_ex(const char *message,
jwidget_add_child(box2, subbox1); jwidget_add_child(box2, subbox1);
jwidget_add_child(subbox1, panel); jwidget_add_child(subbox1, panel);
jwidget_add_child(subbox1, subbox2); jwidget_add_child(subbox1, subbox2);
jwidget_add_child(subbox2, jlabel_new(ji_translate_string("File name:"))); jwidget_add_child(subbox2, new Label(ji_translate_string("File name:")));
jwidget_add_child(subbox2, entry_name); jwidget_add_child(subbox2, entry_name);
} }
if (widget_extension && (tmp = jwidget_find_name(widget_extension, "right"))) if (widget_extension && (tmp = jwidget_find_name(widget_extension, "right")))

View File

@ -31,44 +31,38 @@
#include "config.h" #include "config.h"
#include "jinete/jlabel.h"
#include "jinete/jmessage.h" #include "jinete/jmessage.h"
#include "jinete/jtheme.h" #include "jinete/jtheme.h"
#include "jinete/jwidget.h"
static bool label_msg_proc(JWidget widget, JMessage msg); Label::Label(const char *text)
: Widget(JI_LABEL)
JWidget jlabel_new(const char *text)
{ {
JWidget widget = new Widget(JI_LABEL); this->setAlign(JI_LEFT | JI_MIDDLE);
this->setText(text);
jwidget_add_hook(widget, JI_LABEL, label_msg_proc, NULL); jwidget_init_theme(this);
widget->setAlign(JI_LEFT | JI_MIDDLE);
widget->setText(text);
jwidget_init_theme(widget);
return widget;
} }
static bool label_msg_proc(JWidget widget, JMessage msg) bool Label::msg_proc(JMessage msg)
{ {
switch (msg->type) { switch (msg->type) {
case JM_REQSIZE: case JM_REQSIZE:
if (widget->hasText()) { if (this->hasText()) {
msg->reqsize.w = jwidget_get_text_length(widget); msg->reqsize.w = jwidget_get_text_length(this);
msg->reqsize.h = jwidget_get_text_height(widget); msg->reqsize.h = jwidget_get_text_height(this);
} }
else else
msg->reqsize.w = msg->reqsize.h = 0; msg->reqsize.w = msg->reqsize.h = 0;
msg->reqsize.w += widget->border_width.l + widget->border_width.r; msg->reqsize.w += this->border_width.l + this->border_width.r;
msg->reqsize.h += widget->border_width.t + widget->border_width.b; msg->reqsize.h += this->border_width.t + this->border_width.b;
return true; return true;
case JM_DRAW: case JM_DRAW:
widget->theme->draw_label(widget, &msg->draw.rect); this->theme->draw_label(this, &msg->draw.rect);
return true; return true;
} }
return false; return Widget::msg_proc(msg);
} }

View File

@ -32,8 +32,16 @@
#ifndef JINETE_JLABEL_H_INCLUDED #ifndef JINETE_JLABEL_H_INCLUDED
#define JINETE_JLABEL_H_INCLUDED #define JINETE_JLABEL_H_INCLUDED
#include "jinete/jbase.h" #include "jinete/jwidget.h"
JWidget jlabel_new(const char *text); class Label : public Widget
{
public:
Label(const char *text);
protected:
virtual bool msg_proc(JMessage msg);
};
#endif #endif

View File

@ -46,20 +46,20 @@ typedef struct Model
const char *text; const char *text;
int model; int model;
int color_type; int color_type;
JWidget (*create)(); Widget* (*create)();
} Model; } Model;
struct ColorSelector struct ColorSelector
{ {
color_t color; color_t color;
Model* selected_model; Model* selected_model;
std::vector<JWidget> model_buttons; std::vector<Widget*> model_buttons;
}; };
static JWidget create_rgb_container(); static Widget* create_rgb_container();
static JWidget create_hsv_container(); static Widget* create_hsv_container();
static JWidget create_gray_container(); static Widget* create_gray_container();
static JWidget create_mask_container(); static Widget* create_mask_container();
static int colorselector_type(); static int colorselector_type();
static ColorSelector* colorselector_data(JWidget widget); static ColorSelector* colorselector_data(JWidget widget);
@ -86,12 +86,12 @@ static Model models[] = {
Frame* colorselector_new() Frame* colorselector_new()
{ {
Frame* window = new PopupWindow(NULL, false); Frame* window = new PopupWindow(NULL, false);
JWidget grid1 = jgrid_new(2, false); Widget* grid1 = jgrid_new(2, false);
JWidget grid2 = jgrid_new(5, false); Widget* grid2 = jgrid_new(5, false);
JWidget models_box = jbox_new(JI_HORIZONTAL); Widget* models_box = jbox_new(JI_HORIZONTAL);
PalEdit* pal = new PalEdit(false); PalEdit* pal = new PalEdit(false);
JWidget idx = jlabel_new("None"); Label* idx = new Label("None");
JWidget child; Widget* child;
ColorSelector* colorselector = new ColorSelector; ColorSelector* colorselector = new ColorSelector;
Model* m; Model* m;
@ -165,15 +165,15 @@ JWidget colorselector_get_paledit(JWidget widget)
return jwidget_find_name(widget, "pal"); return jwidget_find_name(widget, "pal");
} }
static JWidget create_rgb_container() static Widget* create_rgb_container()
{ {
JWidget grid = jgrid_new(2, false); Widget* grid = jgrid_new(2, false);
JWidget rlabel = jlabel_new("R"); Label* rlabel = new Label("R");
JWidget glabel = jlabel_new("G"); Label* glabel = new Label("G");
JWidget blabel = jlabel_new("B"); Label* blabel = new Label("B");
JWidget rslider = jslider_new(0, 255, 0); Widget* rslider = jslider_new(0, 255, 0);
JWidget gslider = jslider_new(0, 255, 0); Widget* gslider = jslider_new(0, 255, 0);
JWidget bslider = jslider_new(0, 255, 0); Widget* bslider = jslider_new(0, 255, 0);
jgrid_add_child(grid, rlabel, 1, 1, JI_RIGHT); jgrid_add_child(grid, rlabel, 1, 1, JI_RIGHT);
jgrid_add_child(grid, rslider, 1, 1, JI_HORIZONTAL); jgrid_add_child(grid, rslider, 1, 1, JI_HORIZONTAL);
jgrid_add_child(grid, glabel, 1, 1, JI_RIGHT); jgrid_add_child(grid, glabel, 1, 1, JI_RIGHT);
@ -192,15 +192,15 @@ static JWidget create_rgb_container()
return grid; return grid;
} }
static JWidget create_hsv_container() static Widget* create_hsv_container()
{ {
JWidget grid = jgrid_new(2, false); Widget* grid = jgrid_new(2, false);
JWidget hlabel = jlabel_new("H"); Label* hlabel = new Label("H");
JWidget slabel = jlabel_new("S"); Label* slabel = new Label("S");
JWidget vlabel = jlabel_new("V"); Label* vlabel = new Label("V");
JWidget hslider = jslider_new(0, 255, 0); Widget* hslider = jslider_new(0, 255, 0);
JWidget sslider = jslider_new(0, 255, 0); Widget* sslider = jslider_new(0, 255, 0);
JWidget vslider = jslider_new(0, 255, 0); Widget* vslider = jslider_new(0, 255, 0);
jgrid_add_child(grid, hlabel, 1, 1, JI_RIGHT); jgrid_add_child(grid, hlabel, 1, 1, JI_RIGHT);
jgrid_add_child(grid, hslider, 1, 1, JI_HORIZONTAL); jgrid_add_child(grid, hslider, 1, 1, JI_HORIZONTAL);
jgrid_add_child(grid, slabel, 1, 1, JI_RIGHT); jgrid_add_child(grid, slabel, 1, 1, JI_RIGHT);
@ -219,11 +219,11 @@ static JWidget create_hsv_container()
return grid; return grid;
} }
static JWidget create_gray_container() static Widget* create_gray_container()
{ {
JWidget grid = jgrid_new(2, false); Widget* grid = jgrid_new(2, false);
JWidget klabel = jlabel_new("V"); Label* klabel = new Label("V");
JWidget vslider = jslider_new(0, 255, 0); Widget* vslider = jslider_new(0, 255, 0);
jgrid_add_child(grid, klabel, 1, 1, JI_RIGHT); jgrid_add_child(grid, klabel, 1, 1, JI_RIGHT);
jgrid_add_child(grid, vslider, 1, 1, JI_HORIZONTAL); jgrid_add_child(grid, vslider, 1, 1, JI_HORIZONTAL);
@ -234,9 +234,9 @@ static JWidget create_gray_container()
return grid; return grid;
} }
static JWidget create_mask_container() static Widget* create_mask_container()
{ {
return jlabel_new("Mask color selected"); return new Label("Mask color selected");
} }
static int colorselector_type() static int colorselector_type()