+
+static struct command_table commands[] = {
+ {"abort_navigation()",command_cast(gui_internal_cmd2_abort_navigation)},
+ {"back_to_map",command_cast(gui_internal_cmd2_back_to_map)},
+ {"bookmarks",command_cast(gui_internal_cmd2_bookmarks)},
+ {"fullscreen",command_cast(gui_internal_cmd_fullscreen)},
+ {"get_data",command_cast(gui_internal_get_data)},
+ {"locale",command_cast(gui_internal_cmd2_locale)},
+ {"log",command_cast(gui_internal_cmd_log)},
+ {"menu",command_cast(gui_internal_cmd_menu2)},
+ {"position",command_cast(gui_internal_cmd2_position)},
+ {"route_description",command_cast(gui_internal_cmd2_route_description)},
+ {"route_height_profile",command_cast(gui_internal_cmd2_route_height_profile)},
+ {"setting_display",command_cast(gui_internal_cmd2_setting_display)},
+ {"setting_maps",command_cast(gui_internal_cmd2_setting_maps)},
+ {"setting_rules",command_cast(gui_internal_cmd2_setting_rules)},
+ {"setting_vehicle",command_cast(gui_internal_cmd2_setting_vehicle)},
+ {"town",command_cast(gui_internal_cmd2_town)},
+ {"quit",command_cast(gui_internal_cmd2_quit)},
+ {"write",command_cast(gui_internal_cmd_write)},
+};
+
+
+//##############################################################################################################
+//# Description:
+//# Comment:
+//# Authors: Martin Schaller (04/2008)
+//##############################################################################################################
+static struct gui_priv * gui_internal_new(struct navit *nav, struct gui_methods *meth, struct attr **attrs, struct gui *gui)
+{
+ struct gui_priv *this;
+ struct attr *attr;
+ *meth=gui_internal_methods;
+ this=g_new0(struct gui_priv, 1);
+ this->nav=nav;
+
+ this->self.type=attr_gui;
+ this->self.u.gui=gui;
+
+ if ((attr=attr_search(attrs, NULL, attr_menu_on_map_click)))
+ this->menu_on_map_click=attr->u.num;
+ else
+ this->menu_on_map_click=1;
+ if ((attr=attr_search(attrs, NULL, attr_callback_list))) {
+ command_add_table(attr->u.callback_list, commands, sizeof(commands)/sizeof(struct command_table), this);
+ }
+
+ if( (attr=attr_search(attrs,NULL,attr_font_size)))
+ {
+ this->config.font_size=attr->u.num;
+ }
+ else
+ {
+ this->config.font_size=-1;
+ }
+ if( (attr=attr_search(attrs,NULL,attr_icon_xs)))
+ {
+ this->config.icon_xs=attr->u.num;
+ }
+ else
+ {
+ this->config.icon_xs=-1;
+ }
+ if( (attr=attr_search(attrs,NULL,attr_icon_l)))
+ {
+ this->config.icon_l=attr->u.num;
+ }
+ else
+ {
+ this->config.icon_l=-1;
+ }
+ if( (attr=attr_search(attrs,NULL,attr_icon_s)))
+ {
+ this->config.icon_s=attr->u.num;
+ }
+ else
+ {
+ this->config.icon_s=-1;
+ }
+ if( (attr=attr_search(attrs,NULL,attr_spacing)))
+ {
+ this->config.spacing=attr->u.num;
+ }
+ else
+ {
+ this->config.spacing=-1;
+ }
+ if( (attr=attr_search(attrs,NULL,attr_gui_speech)))
+ {
+ this->speech=attr->u.num;
+ }
+ if( (attr=attr_search(attrs,NULL,attr_keyboard)))
+ this->keyboard=attr->u.num;
+ else
+ this->keyboard=1;
+
+ if( (attr=attr_search(attrs,NULL,attr_fullscreen)))
+ this->fullscreen=attr->u.num;
+
+ if( (attr=attr_search(attrs,NULL,attr_flags)))
+ this->flags=attr->u.num;
+ if( (attr=attr_search(attrs,NULL,attr_background_color)))
+ this->background_color=*attr->u.color;
+ else
+ this->background_color=(struct color){0x0,0x0,0x0,0xffff};
+ if( (attr=attr_search(attrs,NULL,attr_background_color2)))
+ this->background2_color=*attr->u.color;
+ else
+ this->background2_color=(struct color){0x4141,0x4141,0x4141,0xffff};
+ if( (attr=attr_search(attrs,NULL,attr_text_color)))
+ this->text_foreground_color=*attr->u.color;
+ else
+ this->text_foreground_color=(struct color){0xffff,0xffff,0xffff,0xffff};
+ if( (attr=attr_search(attrs,NULL,attr_columns)))
+ this->cols=attr->u.num;
+ if( (attr=attr_search(attrs,NULL,attr_osd_configuration)))
+ this->osd_configuration=*attr;
+
+ if( (attr=attr_search(attrs,NULL,attr_pitch)))
+ this->pitch=attr->u.num;
+ else
+ this->pitch=20;
+ this->data.priv=this;
+ this->data.gui=&gui_internal_methods_ext;
+ this->data.widget=&gui_internal_widget_methods;
+ this->cbl=callback_list_new();
+
+ return this;
+}
+
+//##############################################################################################################
+//# Description:
+//# Comment:
+//# Authors: Martin Schaller (04/2008)
+//##############################################################################################################
+void plugin_init(void)
+{
+ plugin_register_gui_type("internal", gui_internal_new);
+}
+