+LayoutLocale::LayoutLocale(int x, int y, PreferencesWindow *pwindow)
+ : BC_PopupMenu(x, y, xS(200), pwindow->thread->preferences->locale, 1)
+{
+ this->pwindow = pwindow;
+}
+LayoutLocale::~LayoutLocale()
+{
+}
+
+const char *LayoutLocale::locale_list[] = { LOCALE_LIST, 0 };
+
+void LayoutLocale::create_objects()
+{
+ for( const char *tp, **lp=locale_list; (tp=*lp)!=0; ++lp )
+ add_item(new LayoutLocaleItem(this, tp));
+}
+
+int LayoutLocale::handle_event()
+{
+ return 1;
+}
+
+LayoutLocaleItem::LayoutLocaleItem(LayoutLocale *popup, const char *text)
+ : BC_MenuItem(text)
+{
+ this->popup = popup;
+}
+
+int LayoutLocaleItem::handle_event()
+{
+ popup->set_text(get_text());
+ strcpy(popup->pwindow->thread->preferences->locale, get_text());
+ popup->handle_event();
+ return 1;
+}
+
+ViewLayoutScale::ViewLayoutScale(PreferencesWindow *pwindow,
+ AppearancePrefs *aprefs, int x, int y)
+ : BC_TumbleTextBox(aprefs,
+ pwindow->thread->preferences->layout_scale,
+ 0.f, 10.f, x, y, xS(80), 2)
+{
+ this->pwindow = pwindow;
+ this->aprefs = aprefs;
+ set_increment(0.1);
+}
+
+int ViewLayoutScale::handle_event()
+{
+ float v = atof(get_text());
+ pwindow->thread->preferences->layout_scale = v;
+ return 1;
+}
+