Changeset 439
- Timestamp:
- 12/20/06 11:40:31 (6 years ago)
- Location:
- trunk/src/target/OM-2007/applications/openmoko-mainmenu/src
- Files:
-
- 4 edited
-
mainmenu.c (modified) (2 diffs)
-
mainmenu.h (modified) (2 diffs)
-
mokoiconview.c (modified) (26 diffs)
-
support.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mainmenu.c
r434 r439 138 138 //gtk_container_add (bg_item, mm->item_total); 139 139 140 //mm->icon_view = gtk_icon_view_new ();141 140 mm->icon_view = MOKO_ICON_VIEW(moko_icon_view_new()); 142 gtk_widget_show (mm->icon_view);143 //moko_icon_view_set_item_width(mm->icon_view, ITEM_WIDTH);144 //moko_icon_view_set_columns (mm->icon_view, COLUMN_NUM);141 //gtk_widget_set_direction (GTK_WIDGET (mm->icon_view), GTK_TEXT_DIR_RTL); 142 moko_icon_view_set_item_width(mm->icon_view, ITEM_WIDTH); 143 moko_icon_view_set_columns (mm->icon_view, COLUMN_NUM); 145 144 moko_icon_view_set_margin (mm->icon_view, ITEM_MARGIN); 146 145 moko_icon_view_set_row_spacing (mm->icon_view, ROW_SPACING); 147 //moko_icon_view_set_column_spacing (mm->icon_view, COLUMN_SPACING); 146 moko_icon_view_set_column_spacing (mm->icon_view, COLUMN_SPACING); 147 148 //mm->icon_view = gtk_icon_view_new (); 149 //gtk_icon_view_set_item_width(mm->icon_view, ITEM_WIDTH); 150 //gtk_icon_view_set_columns (mm->icon_view, COLUMN_NUM); 151 //gtk_icon_view_set_margin (mm->icon_view, ITEM_MARGIN); 152 //gtk_icon_view_set_row_spacing (mm->icon_view, ROW_SPACING); 153 //gtk_icon_view_set_column_spacing (mm->icon_view, COLUMN_SPACING); 154 148 155 //moko_icon_view_set_selection_mode (mm->icon_view, GTK_SELECTION_SINGLE); 156 gtk_widget_show (mm->icon_view); 149 157 150 158 mm->list_store = gtk_list_store_new (3, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_POINTER); … … 169 177 gtk_widget_show (mm->hbox); 170 178 171 //gtk_box_pack_start (mm, bg_main, FALSE, FALSE, 0);179 gtk_box_pack_start (mm, bg_main, FALSE, FALSE, 0); 172 180 gtk_container_add (bg_main, mm->hbox); 173 181 gtk_box_pack_start (mm->hbox, mm->section_name, TRUE, TRUE, 10); -
trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mainmenu.h
r434 r439 40 40 #define COLUMN_NUM 3 41 41 #define ITEM_WIDTH 140 42 #define ITEM_HEIGHT 12043 42 #define ITEM_MARGIN 0 44 #define ROW_SPACING 2043 #define ROW_SPACING 40 45 44 #define COLUMN_SPACING 0 46 45 #define ITME_TOTAL_WIDTH 7 47 46 48 #define PIXBUF_WIDTH 1 0049 #define PIXBUF_HEIGHT 1 0047 #define PIXBUF_WIDTH 120 //? useless 48 #define PIXBUF_HEIGHT 120//? useless 50 49 51 50 #define SECTION_ALG_X 0.6 … … 75 74 76 75 //GtkIconView *icon_view; 77 //GtkWidget *icon_view;78 MokoIconView *icon_view;76 GtkWidget *icon_view; 77 //MokoIconView *icon_view; 79 78 GtkListStore *list_store; 80 79 GtkWidget *scrolled; -
trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mokoiconview.c
r436 r439 34 34 gint x, y; 35 35 gint width, height; 36 gint colspan; 36 37 37 38 gint pixbuf_x, pixbuf_y; … … 146 147 PROP_MARGIN 147 148 }; 148 149 //GdkPixbuf *frame;150 149 151 150 /* GObject signals */ … … 791 790 icon_view->priv->layout_offset_x = 0; 792 791 icon_view->priv->layout_offset_y = 0; 793 icon_view->priv->max_text_len = 10;792 icon_view->priv->max_text_len = 30; 794 793 795 794 icon_view->priv->layout = gtk_widget_create_pango_layout (GTK_WIDGET (icon_view), NULL); 795 796 icon_view->priv->decoration = gdk_pixbuf_new_from_file (PKGDATADIR"/main_menu_sel_icon.png", NULL); 796 797 797 798 pango_layout_set_wrap (icon_view->priv->layout, PANGO_WRAP_WORD_CHAR); … … 983 984 dest_x = 0; 984 985 dest_y = 0; 985 width = gdk_pixbuf_get_width (src);986 height = gdk_pixbuf_get_height (src);987 offset_x = 0;988 offset_y = 0;986 offset_x = 10; 987 offset_y = 10; 988 width = gdk_pixbuf_get_width (src) + 2*offset_x; 989 height = gdk_pixbuf_get_height (src) + 2*offset_y; 989 990 scale_x = width; 990 991 scale_y = height; 991 992 alpha = gdk_pixbuf_get_has_alpha (src); 993 994 dest = gdk_pixbuf_new (gdk_pixbuf_get_colorspace (src), 995 TRUE, 996 gdk_pixbuf_get_bits_per_sample (src), 997 width, 998 height); 992 999 993 1000 g_debug ("test1---------------------"); … … 998 1005 */ 999 1006 g_debug ("test2---------------------"); 1000 gdk_pixbuf_composite ( decoration, src,1007 gdk_pixbuf_composite (src, decoration, 1001 1008 dest_x, dest_y, 1002 1009 width, height, … … 1015 1022 { 1016 1023 gint focus_width, focus_pad; 1017 GdkPixbuf *pixbuf, *tmp ;1024 GdkPixbuf *pixbuf, *tmp, *scaled; 1018 1025 GtkStateType state; 1019 1026 gboolean rtl = gtk_widget_get_direction (GTK_WIDGET (icon_view)) == GTK_TEXT_DIR_RTL; 1020 1027 1028 1021 1029 if (!icon_view->priv->decoration) 1022 1030 { 1023 GdkPixbuf *tmp = gdk_pixbuf_new_from_file (PKGDATADIR"/main_menu_sel_icon.png", NULL); 1024 icon_view->priv->decoration = gdk_pixbuf_scale_simple (tmp, 1025 (item->width+2*FRAME_OFFSET), (item->height+2*FRAME_OFFSET), GDK_INTERP_NEAREST); 1026 g_object_unref (tmp); 1031 g_debug ("Error: can't get decoration image"); 1027 1032 } 1028 1033 g_debug (":) begin-----------------"); … … 1043 1048 if (icon_view->priv->pixbuf_column != -1) 1044 1049 { 1045 tmp = moko_icon_view_get_item_icon (icon_view, item); 1046 if (item->selected) 1050 pixbuf = moko_icon_view_get_item_icon (icon_view, item); 1051 1052 1053 1054 if (item->selected) 1047 1055 { 1048 //pixbuf = create_colorized_pixbuf (tmp, 1049 // >K_WIDGET (icon_view)->style->base[state]); 1050 //pixbuf = moko_composite_selected_pixbuf (tmp, frame); 1051 //g_object_unref (tmp); 1052 //g_debug ("pixbuf_width = %d, pixbufheight = %d", item->pixbuf_width, item->pixbuf_height); 1053 //g_debug ("pixbuf_x = %d, pixbuf_y = %d", item->pixbuf_x, item->pixbuf_y); 1054 gdk_draw_pixbuf (icon_view->priv->bin_window, NULL, icon_view->priv->decoration, 1055 0, 0, 1056 (item->x-FRAME_OFFSET), (item->y-FRAME_OFFSET), 1057 (item->width+2*FRAME_OFFSET), (item->height+2*FRAME_OFFSET), 1058 GDK_RGB_DITHER_NORMAL, 1059 (item->width+2*FRAME_OFFSET), (item->height+2*FRAME_OFFSET)); 1056 gint decr_width = 10; 1057 gint scaled_w, scaled_h; 1058 gint scaled_x, scaled_y; 1059 scaled_w = item->pixbuf_width - 2*decr_width; 1060 scaled_h = item->pixbuf_height - 2*decr_width; 1061 scaled_x = item->pixbuf_x + decr_width; 1062 scaled_y = item->pixbuf_y + decr_width; 1063 1064 scaled = gdk_pixbuf_scale_simple (pixbuf, 1065 scaled_w, scaled_h, GDK_INTERP_NEAREST); 1066 1067 tmp = gdk_pixbuf_scale_simple (icon_view->priv->decoration, 1068 item->pixbuf_width, item->pixbuf_width, 1069 GDK_INTERP_NEAREST); 1070 1071 gdk_draw_pixbuf (icon_view->priv->bin_window, NULL, 1072 tmp, 1073 0, 0, 1074 item->pixbuf_x, item->pixbuf_y, 1075 item->pixbuf_width, item->pixbuf_height, 1076 GDK_RGB_DITHER_NORMAL, 1077 item->pixbuf_width, item->pixbuf_height); 1078 g_debug ("frame(%d,%d)", item->x, item->y); 1079 gdk_draw_pixbuf (icon_view->priv->bin_window, NULL, scaled, 1080 0, 0, 1081 scaled_x, scaled_y, 1082 scaled_w, scaled_h, 1083 GDK_RGB_DITHER_NORMAL, 1084 scaled_w, scaled_h); 1085 g_object_unref (tmp); 1086 g_object_unref (scaled); 1087 1060 1088 } 1061 1089 else 1062 pixbuf = tmp; 1063 1064 gdk_draw_pixbuf (icon_view->priv->bin_window, NULL, pixbuf,1065 0, 0,1066 item->pixbuf_x, item->pixbuf_y,1067 item->pixbuf_width, item->pixbuf_height,1068 GDK_RGB_DITHER_NORMAL,1069 item->pixbuf_width, item->pixbuf_height); 1070 1071 } 1072 g_debug (":) 1-----------------");1090 { 1091 gdk_draw_pixbuf (icon_view->priv->bin_window, NULL, pixbuf, 1092 0, 0, 1093 item->pixbuf_x, item->pixbuf_y, 1094 item->pixbuf_width, item->pixbuf_height, 1095 GDK_RGB_DITHER_NORMAL, 1096 item->pixbuf_width, item->pixbuf_height); 1097 } 1098 1099 } 1100 g_debug (":) 4 -----------------"); 1073 1101 1074 1102 if (icon_view->priv->text_column != -1 || … … 1892 1920 item->layout_width, padding, spacing, item->pixbuf_width); 1893 1921 } 1922 1894 1923 } 1895 1924 … … 1935 1964 colspan = item->pixbuf_width / item_width + 1; 1936 1965 maximum_layout_width = MOKO_MAX (colspan * item_width - item->pixbuf_width - icon_view->priv->spacing - 2 * (ICON_TEXT_PADDING + focus_width + focus_pad), 50); 1966 g_debug ("maximum_layout_width = %d", maximum_layout_width); 1937 1967 } 1938 1968 else 1939 1969 maximum_layout_width = MOKO_MAX (item_width, item->pixbuf_width); 1940 //maximum_layout_width = item_width;1970 g_debug ("maximum_layout_width = %d", maximum_layout_width); 1941 1971 1942 1972 … … 1947 1977 1948 1978 pango_layout_set_alignment (icon_view->priv->layout, PANGO_ALIGN_CENTER); 1949 pango_layout_set_width (icon_view->priv->layout, icon_view->priv->width* PANGO_SCALE);//maximum_layout_width * PANGO_SCALE); 1950 //pango_layout_iter_set_line_yrange (icon_view->priv->layout, 0, 1); 1951 //pango_layout_set_ellipsize (icon_view->priv->layout, PANGO_ELLIPSIZE_END); 1952 1979 pango_layout_set_width (icon_view->priv->layout, maximum_layout_width * PANGO_SCALE); 1980 1953 1981 pango_layout_get_pixel_size (icon_view->priv->layout, &layout_width, &layout_height); 1954 1982 … … 1969 1997 item->width = item->layout_width + padding + spacing + item->pixbuf_width; 1970 1998 item->height = MOKO_MAX (item->layout_height + padding, item->pixbuf_height); 1971 g_debug ("Hlayout_width = %d, padding = %d, spacing = %d, pixbuf_width = %d",1972 item->layout_width, padding, spacing, item->pixbuf_width);1973 1999 } 1974 2000 else … … 1976 2002 item->width = MOKO_MAX (item->layout_width + padding, item->pixbuf_width); 1977 2003 item->height = item->layout_height + padding + spacing + item->pixbuf_height; 1978 g_debug ("Vlayout_width = %d, padding = %d, spacing = %d, pixbuf_width = %d", 1979 item->layout_width, padding, spacing, item->pixbuf_width); 1980 } 2004 } 2005 g_debug ("WH: item(%d,%d) pixbuf(%d,%d) layout(%d,%d)", 2006 item->width, item->height, 2007 item->pixbuf_width, item->pixbuf_height, 2008 item->layout_width, item->layout_height); 1981 2009 } 1982 2010 … … 2001 2029 2002 2030 static GList * 2003 gtk_icon_view_layout_single_row (MokoIconView *icon_view,2031 moko_icon_view_layout_single_row (MokoIconView *icon_view, 2004 2032 GList *first_item, 2005 2033 gint item_width, … … 2015 2043 gboolean rtl = gtk_widget_get_direction (GTK_WIDGET (icon_view)) == GTK_TEXT_DIR_RTL; 2016 2044 2017 x = 0;2045 x = 0; 2018 2046 col = 0; 2019 2047 max_height = 0; … … 2026 2054 "focus-padding", &focus_pad, 2027 2055 NULL); 2056 g_debug ("focus_w = %d, focus_pad = %d", focus_width, focus_pad); 2028 2057 2029 2058 x += icon_view->priv->margin; … … 2033 2062 while (items) 2034 2063 { 2064 gint last_width; 2035 2065 MokoIconViewItem *item = items->data; 2036 2066 … … 2038 2068 2039 2069 colspan = 1 + (item->width - 1) / (item_width + icon_view->priv->column_spacing); 2040 //current_width += colspan * (item_width + icon_view->priv->column_spacing); 2041 current_width += item_width + icon_view->priv->column_spacing; 2042 2043 g_debug ("draw signal row: "); 2044 g_debug ("colspan:%d, current:%d, item->width:%d, item_width:%d", colspan, current_width, item->width, item_width); 2045 sleep (1); 2070 last_width = current_width; 2071 current_width += colspan * (item_width + icon_view->priv->column_spacing); 2072 2073 2046 2074 if (items != first_item) 2047 2075 { … … 2051 2079 } 2052 2080 2053 item->y = *y +(icon_view->priv->row_spacing/2);//SUNZY:modify item box y coordinate, originalty value is "y = *y".2054 //item->x = rtl ? GTK_WIDGET (icon_view)->allocation.width - MOKO_MAX (item_width, item->width) - x : x;2055 item->x = x; 2081 item->y = *y + icon_view->priv->row_spacing/2;//SUNZY 2082 item->x = rtl ? GTK_WIDGET (icon_view)->allocation.width - MOKO_MAX (item_width, item->width) - x : x; 2083 2056 2084 if (icon_view->priv->orientation == GTK_ORIENTATION_HORIZONTAL) 2057 2085 { … … 2095 2123 2096 2124 col += colspan; 2125 item->x = last_width; 2126 g_debug("item: (%d,%d) pixbuf (%d,%d) layout (%d,%d), current_width = %d", 2127 item->x, item->y, item->pixbuf_x, item->pixbuf_y, 2128 item->layout_x, item->layout_y, 2129 current_width); 2130 2097 2131 items = items->next; 2098 2132 } … … 2101 2135 2102 2136 *y += max_height + icon_view->priv->row_spacing; 2137 2103 2138 2104 2139 /* Now go through the row again and align the icons */ … … 2129 2164 if (rtl) 2130 2165 item->col = col - 1 - item->col; 2166 g_debug("LAST TIME item: (%d,%d) pixbuf (%d,%d) layout (%d,%d)", 2167 item->x, item->y, item->pixbuf_x, item->pixbuf_y, 2168 item->layout_x, item->layout_y); 2131 2169 } 2132 2170 … … 2135 2173 2136 2174 static GList * 2137 moko_icon_view_layout_single_row (MokoIconView *icon_view,2175 gtk_icon_view_layout_single_row (MokoIconView *icon_view, 2138 2176 GList *first_item, 2139 2177 gint item_width, … … 2171 2209 moko_icon_view_calculate_item_size (icon_view, item, item_width); 2172 2210 2173 colspan = 1 + (item->width - 1) / (item_width + icon_view->priv->column_spacing); 2174 current_width += colspan * (item_width + icon_view->priv->column_spacing); 2211 //colspan = 1 + (item->width - 1) / (item_width + icon_view->priv->column_spacing); 2212 //current_width += colspan * (item_width + icon_view->priv->column_spacing); 2213 current_width += icon_view->priv->width + icon_view->priv->column_spacing; 2175 2214 g_debug ("draw signal row: "); 2176 2215 g_debug ("colspan:%d, current:%d, item->width:%d, item_width:%d, maximum_width:%d", colspan, current_width, item->width, item_width, *maximum_width); 2177 sleep (1);2178 2216 if (items != first_item) 2179 2217 { … … 2184 2222 2185 2223 item->y = *y+(icon_view->priv->row_spacing/2);//SUNZY:modify item box y coordinate, originalty value is "y = *y". 2186 item->x = rtl ? GTK_WIDGET (icon_view)->allocation.width - MOKO_MAX (item_width, item->width) -x : x;2224 item->x = rtl ? GTK_WIDGET (icon_view)->allocation.width - icon_view->priv->width-x : x; 2187 2225 2188 2226 if (icon_view->priv->orientation == GTK_ORIENTATION_HORIZONTAL) … … 2226 2264 item->col = col; 2227 2265 2228 col + = colspan;2266 col ++;//= colspan; 2229 2267 items = items->next; 2230 2268 } … … 2253 2291 } 2254 2292 /* Update the bounding box */ 2255 item->y = item->pixbuf_y;2293 // item->y = item->pixbuf_y; 2256 2294 2257 2295 /* We may want to readjust the new y coordinate. */ 2258 if ( item->y + item->height> *y)2296 if ((item->y + item->height) > *y) 2259 2297 *y = item->y + item->height; 2260 2298 -
trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/support.c
r434 r439 40 40 gtk_list_store_append (store, &iter); 41 41 pixbuf = gdk_pixbuf_new_from_file_at_size (icon_path, PIXBUF_WIDTH, PIXBUF_HEIGHT, NULL);// ADD Gerro handle later 42 42 //pixbuf = gdk_pixbuf_new_from_file (icon_path, NULL);// ADD Gerro handle later 43 43 gtk_list_store_set (store, &iter, PIXBUF_COLUMN, pixbuf, TEXT_COLUMN, icon_name, -1); 44 44 g_object_unref (pixbuf); … … 53 53 moko_fill_model(store,"/usr/share/pixmaps/anjuta.xpm","anjuta"); 54 54 moko_fill_model(store,"/usr/share/pixmaps/battstat.png","battstat"); 55 moko_fill_model(store,"/usr/share/pixmaps/gdm.png","gdm");56 moko_fill_model(store,"/usr/share/pixmaps/gdm-setup.png","gdm-setup");57 moko_fill_model(store,"/usr/share/pixmaps/gnome-eyes.png","gnome-eyes");58 moko_fill_model(store,"/usr/share/pixmaps/gnome-geg12.png","gnome-geg12");59 moko_fill_model(store,"/usr/share/pixmaps/gdm.xpm","gdm");55 //moko_fill_model(store,"/usr/share/pixmaps/gdm.png","gdm"); 56 //moko_fill_model(store,"/usr/share/pixmaps/gdm-setup.png","gdm-setup"); 57 //moko_fill_model(store,"/usr/share/pixmaps/gnome-eyes.png","gnome-eyes"); 58 //moko_fill_model(store,"/usr/share/pixmaps/gnome-geg12.png","gnome-geg12"); 59 //moko_fill_model(store,"/usr/share/pixmaps/gdm.xpm","gdm"); 60 60 } 61 61
Note: See TracChangeset
for help on using the changeset viewer.
