static gint luaH_window_newindex(lua_State *L, luapdf_token_t token) { widget_t *w = luaH_checkwidget(L, 1); switch(token) { LUAPDF_WIDGET_BIN_NEWINDEX_COMMON(w) case L_TK_DECORATED: gtk_window_set_decorated(GTK_WINDOW(w->widget), luaH_checkboolean(L, 3)); break; case L_TK_TITLE: gtk_window_set_title(GTK_WINDOW(w->widget), luaL_checkstring(L, 3)); break; case L_TK_ICON: gtk_window_set_icon_from_file(GTK_WINDOW(w->widget), luaL_checkstring(L, 3), NULL); break; default: return 0; } return luaH_object_emit_property_signal(L, 1); }
static gint luaH_entry_newindex(lua_State *L, luakit_token_t token) { size_t len; widget_t *w = luaH_checkwidget(L, 1); const gchar *tmp; GdkColor c; PangoFontDescription *font; switch(token) { case L_TK_TEXT: gtk_entry_set_text(GTK_ENTRY(w->widget), luaL_checklstring(L, 3, &len)); break; case L_TK_FG: case L_TK_BG: tmp = luaL_checklstring(L, 3, &len); if (!gdk_color_parse(tmp, &c)) luaL_argerror(L, 3, "unable to parse color"); if (token == L_TK_FG) { gtk_widget_modify_text(GTK_WIDGET(w->widget), GTK_STATE_NORMAL, &c); g_object_set_data_full(G_OBJECT(w->widget), "fg", g_strdup(tmp), g_free); } else { gtk_widget_modify_base(GTK_WIDGET(w->widget), GTK_STATE_NORMAL, &c); g_object_set_data_full(G_OBJECT(w->widget), "bg", g_strdup(tmp), g_free); } break; case L_TK_SHOW_FRAME: gtk_entry_set_has_frame(GTK_ENTRY(w->widget), luaH_checkboolean(L, 3)); break; case L_TK_POSITION: gtk_editable_set_position(GTK_EDITABLE(w->widget), luaL_checknumber(L, 3)); break; case L_TK_FONT: tmp = luaL_checklstring(L, 3, &len); font = pango_font_description_from_string(tmp); gtk_widget_modify_font(GTK_WIDGET(w->widget), font); g_object_set_data_full(G_OBJECT(w->widget), "font", g_strdup(tmp), g_free); break; default: warn("unknown property: %s", luaL_checkstring(L, 2)); return 0; } return luaH_object_emit_property_signal(L, 1); }
static gint luaH_label_newindex(lua_State *L, luakit_token_t token) { size_t len; widget_t *w = luaH_checkwidget(L, 1); const gchar *tmp; GdkColor c; PangoFontDescription *font; switch(token) { case L_TK_TEXT: gtk_label_set_markup(GTK_LABEL(w->widget), luaL_checklstring(L, 3, &len)); break; case L_TK_FG: tmp = luaL_checklstring(L, 3, &len); if (!gdk_color_parse(tmp, &c)) { warn("invalid color: %s", tmp); return 0; } gtk_widget_modify_fg(GTK_WIDGET(w->widget), GTK_STATE_NORMAL, &c); g_object_set_data_full(G_OBJECT(w->widget), "fg", g_strdup(tmp), g_free); break; case L_TK_FONT: tmp = luaL_checklstring(L, 3, &len); font = pango_font_description_from_string(tmp); gtk_widget_modify_font(GTK_WIDGET(w->widget), font); pango_font_description_free(font); g_object_set_data_full(G_OBJECT(w->widget), "font", g_strdup(tmp), g_free); break; case L_TK_SELECTABLE: gtk_label_set_selectable(GTK_LABEL(w->widget), luaH_checkboolean(L, 3)); break; default: warn("unknown property: %s", luaL_checkstring(L, 2)); return 0; } return luaH_object_emit_property_signal(L, 1); }
static gint luaH_box_newindex(lua_State *L, luakit_token_t token) { widget_t *w = luaH_checkwidget(L, 1); switch(token) { case L_TK_HOMOGENEOUS: gtk_box_set_homogeneous(GTK_BOX(w->widget), luaH_checkboolean(L, 3)); break; case L_TK_SPACING: gtk_box_set_spacing(GTK_BOX(w->widget), luaL_checknumber(L, 3)); break; default: return 0; } return luaH_object_emit_property_signal(L, 1); }
static gint luaH_notebook_newindex(lua_State *L, luakit_token_t token) { widget_t *w = luaH_checkudata(L, 1, &widget_class); switch(token) { case L_TK_SHOW_TABS: gtk_notebook_set_show_tabs(GTK_NOTEBOOK(w->widget), luaH_checkboolean(L, 3)); break; case L_TK_SHOW_BORDER: gtk_notebook_set_show_border(GTK_NOTEBOOK(w->widget), luaH_checkboolean(L, 3)); break; default: return 0; } return luaH_object_emit_property_signal(L, 1); }
static gint luaH_eventbox_newindex(lua_State *L, luakit_token_t token) { size_t len; widget_t *w = luaH_checkwidget(L, 1); const gchar *tmp; GdkColor c; switch(token) { case L_TK_BG: tmp = luaL_checklstring(L, 3, &len); if (!gdk_color_parse(tmp, &c)) luaL_argerror(L, 3, "unable to parse colour"); gtk_widget_modify_bg(GTK_WIDGET(w->widget), GTK_STATE_NORMAL, &c); g_object_set_data_full(G_OBJECT(w->widget), "bg", g_strdup(tmp), g_free); break; default: return 0; } return luaH_object_emit_property_signal(L, 1); }
static gint luaH_window_newindex(lua_State *L, luakit_token_t token) { size_t len; widget_t *w = luaH_checkwidget(L, 1); switch(token) { case L_TK_TITLE: gtk_window_set_title(GTK_WINDOW(w->widget), luaL_checklstring(L, 3, &len)); break; case L_TK_ICON: gtk_window_set_icon_from_file(GTK_WINDOW(w->widget), luaL_checklstring(L, 3, &len), NULL); break; default: return 0; } return luaH_object_emit_property_signal(L, 1); }