+FindObjScale::FindObjScale(FindObjMain *plugin, FindObjWindow *gui,
+ int x, int y)
+ : BC_CheckBox(x, y, plugin->config.scale, _("Scale"))
+{
+ this->gui = gui;
+ this->plugin = plugin;
+}
+
+int FindObjScale::handle_event()
+{
+ plugin->config.scale = get_value();
+ plugin->send_configure_change();
+ return 1;
+}
+
+FindObjRotate::FindObjRotate(FindObjMain *plugin, FindObjWindow *gui,
+ int x, int y)
+ : BC_CheckBox(x, y, plugin->config.rotate, _("Rotate"))
+{
+ this->gui = gui;
+ this->plugin = plugin;
+}
+
+int FindObjRotate::handle_event()
+{
+ plugin->config.rotate = get_value();
+ plugin->send_configure_change();
+ return 1;
+}
+
+FindObjTranslate::FindObjTranslate(FindObjMain *plugin, FindObjWindow *gui,
+ int x, int y)
+ : BC_CheckBox(x, y, plugin->config.translate, _("Translate"))
+{
+ this->gui = gui;
+ this->plugin = plugin;
+}
+
+int FindObjTranslate::handle_event()
+{
+ plugin->config.translate = get_value();
+ plugin->send_configure_change();
+ return 1;
+}
+
+FindObjMode::FindObjMode(FindObjMain *plugin, FindObjWindow *gui, int x, int y)
+ : BC_PopupMenu(x, y, calculate_w(gui), to_text(plugin->config.mode))
+{
+ this->plugin = plugin;
+ this->gui = gui;
+}
+
+int FindObjMode::handle_event()
+{
+ plugin->config.mode = from_text(get_text());
+ plugin->send_configure_change();
+ return 1;
+}
+
+void FindObjMode::create_objects()
+{
+ add_item(new BC_MenuItem(to_text(MODE_SQUARE)));
+ add_item(new BC_MenuItem(to_text(MODE_RHOMBUS)));
+ add_item(new BC_MenuItem(to_text(MODE_RECTANGLE)));
+ add_item(new BC_MenuItem(to_text(MODE_PARALLELOGRAM)));
+ add_item(new BC_MenuItem(to_text(MODE_QUADRILATERAL)));
+}
+int FindObjMode::from_text(char *text)
+{
+ if(!strcmp(text, _("Square"))) return MODE_SQUARE;
+ if(!strcmp(text, _("Rhombus"))) return MODE_RHOMBUS;
+ if(!strcmp(text, _("Rectangle"))) return MODE_RECTANGLE;
+ if(!strcmp(text, _("Parallelogram"))) return MODE_PARALLELOGRAM;
+ if(!strcmp(text, _("Quadrilateral"))) return MODE_QUADRILATERAL;
+ return MODE_NONE;
+}
+
+void FindObjMode::update(int mode)
+{
+ set_text(to_text(mode));
+}
+
+char* FindObjMode::to_text(int mode)
+{
+ switch( mode ) {
+ case MODE_SQUARE: return _("Square");
+ case MODE_RHOMBUS: return _("Rhombus");
+ case MODE_RECTANGLE: return _("Rectangle");
+ case MODE_PARALLELOGRAM: return _("Parallelogram");
+ case MODE_QUADRILATERAL: return _("Quadrilateral");
+ }
+ return _("None");
+}
+
+int FindObjMode::calculate_w(FindObjWindow *gui)
+{
+ int result = 0;
+ for( int mode=MODE_NONE; mode<MODE_MAX; ++mode )
+ result = MAX(result, gui->get_text_width(MEDIUMFONT, to_text(mode)));
+ return result + 50;
+}
+