1 #include "bcdisplayinfo.h"
10 PLUGIN_THREAD_OBJECT(ScaleMain, ScaleThread, ScaleWin)
19 ScaleWin::ScaleWin(ScaleMain *client, int x, int y)
20 : BC_Window(client->gui_string,
31 this->client = client;
38 int ScaleWin::create_objects()
42 add_tool(new BC_Title(x, y, _("X Scale:")));
44 width = new ScaleWidth(this, client, x, y);
45 width->create_objects();
47 add_tool(new BC_Title(x, y, _("Y Scale:")));
49 height = new ScaleHeight(this, client, x, y);
50 height->create_objects();
52 add_tool(constrain = new ScaleConstrain(client, x, y));
58 int ScaleWin::close_event()
64 ScaleWidth::ScaleWidth(ScaleWin *win,
68 : BC_TumbleTextBox(win,
69 (float)client->config.w,
76 //printf("ScaleWidth::ScaleWidth %f\n", client->config.w);
77 this->client = client;
82 ScaleWidth::~ScaleWidth()
86 int ScaleWidth::handle_event()
88 client->config.w = atof(get_text());
89 CLAMP(client->config.w, 0, 100);
91 if(client->config.constrain)
93 client->config.h = client->config.w;
94 win->height->update(client->config.h);
97 //printf("ScaleWidth::handle_event 1 %f\n", client->config.w);
98 client->send_configure_change();
105 ScaleHeight::ScaleHeight(ScaleWin *win, ScaleMain *client, int x, int y)
106 : BC_TumbleTextBox(win,
107 (float)client->config.h,
114 this->client = client;
118 ScaleHeight::~ScaleHeight()
121 int ScaleHeight::handle_event()
123 client->config.h = atof(get_text());
124 CLAMP(client->config.h, 0, 100);
126 if(client->config.constrain)
128 client->config.w = client->config.h;
129 win->width->update(client->config.w);
132 client->send_configure_change();
141 ScaleConstrain::ScaleConstrain(ScaleMain *client, int x, int y)
142 : BC_CheckBox(x, y, client->config.constrain, _("Constrain ratio"))
144 this->client = client;
146 ScaleConstrain::~ScaleConstrain()
149 int ScaleConstrain::handle_event()
151 client->config.constrain = get_value();
152 client->send_configure_change();