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)));
box1 = jbox_new(JI_VERTICAL);
label1 = jlabel_new(PACKAGE " | Allegro Sprite Editor v" VERSION);
label2 = jlabel_new(_("A pixel art program"));
label1 = new Label(PACKAGE " | Allegro Sprite Editor v" VERSION);
label2 = new Label(_("A pixel art program"));
separator1 = ji_separator_new(NULL, JI_HORIZONTAL);
label3 = jlabel_new(COPYRIGHT);
label4 = jlabel_new(WEBSITE);
label3 = new Label(COPYRIGHT);
label4 = new Label(WEBSITE);
textbox = jtextbox_new("Authors:\n\n"
" David Capello\n"
" - Project leader and developer\n\n"

View File

@ -69,13 +69,13 @@ void LayerPropertiesCommand::execute(Context* context)
box1 = jbox_new(JI_VERTICAL);
box2 = jbox_new(JI_HORIZONTAL);
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());
button_ok = jbutton_new(_("&OK"));
button_cancel = jbutton_new(_("&Cancel"));
if (with_blend_modes) {
label_bm = jlabel_new(_("Blend mode:"));
label_bm = new Label(_("Blend mode:"));
view_bm = jview_new();
list_bm = jlistbox_new();

View File

@ -71,14 +71,14 @@ void dialogs_mask_color(Sprite* sprite)
box2 = jbox_new(JI_HORIZONTAL);
box3 = jbox_new(JI_HORIZONTAL);
box4 = jbox_new(JI_HORIZONTAL | JI_HOMOGENEOUS);
label_color = jlabel_new(_("Color:"));
label_color = new Label(_("Color:"));
button_color = colorbutton_new
(get_config_color("MaskColor", "Color",
app_get_colorbar()->getFgColor()),
sprite->getImgType());
button_1 = jbutton_new("1");
button_2 = jbutton_new("2");
label_fuzziness = jlabel_new(_("Fuzziness:"));
label_fuzziness = new Label(_("Fuzziness:"));
slider_fuzziness =
jslider_new(0, 255, get_config_int("MaskColor", "Fuzziness", 0));
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);
}
else if (label) {
JWidget label = jlabel_new(beg);
Label* label = new Label(beg);
label->setAlign(align);
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) {
const char *text = elem->Attribute("text");
widget = jlabel_new(text ? TRANSLATE_ATTR(text): NULL);
widget = new Label(text ? TRANSLATE_ATTR(text): NULL);
if (widget) {
bool center = bool_attr_is_true(elem, "center");
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(subbox1, panel);
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);
}
if (widget_extension && (tmp = jwidget_find_name(widget_extension, "right")))

View File

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

View File

@ -32,8 +32,16 @@
#ifndef 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

View File

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