r3339 - in trunk/src/target/OM-2007.2/applications/openmoko-appmanager2: . src

thomas at sita.openmoko.org thomas at sita.openmoko.org
Fri Nov 2 17:34:02 CET 2007


Author: thomas
Date: 2007-11-02 17:33:59 +0100 (Fri, 02 Nov 2007)
New Revision: 3339

Added:
   trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/search-bar.c
   trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/search-bar.h
Removed:
   trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/filter-menu.c
   trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/filter-menu.h
Modified:
   trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/ChangeLog
   trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/Makefile.am
   trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/appmanager-data.c
   trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/appmanager-data.h
   trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/appmanager-window.c
   trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/package-list.c
Log:
* src/Makefile.am:
* src/appmanager-data.c: (application_manager_data_init),
(application_manager_data_set_main_window):
* src/appmanager-data.h:
* src/appmanager-window.c: (main):
* src/filter-menu.c:
* src/filter-menu.h:
* src/package-list.c: (package_list_add_section_to_filter_menu):
* src/search-bar.c:
* src/search-bar.h:

Replace filter menu with search bar combobox


Modified: trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/ChangeLog
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/ChangeLog	2007-11-02 14:56:43 UTC (rev 3338)
+++ trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/ChangeLog	2007-11-02 16:33:59 UTC (rev 3339)
@@ -1,5 +1,20 @@
 2007-11-02  Thomas Wood  <thomas at openedhand.com>
 
+	* src/Makefile.am:
+	* src/appmanager-data.c: (application_manager_data_init),
+	(application_manager_data_set_main_window):
+	* src/appmanager-data.h:
+	* src/appmanager-window.c: (main):
+	* src/filter-menu.c:
+	* src/filter-menu.h:
+	* src/package-list.c: (package_list_add_section_to_filter_menu):
+	* src/search-bar.c:
+	* src/search-bar.h:
+
+	Replace filter menu with search bar combobox
+
+2007-11-02  Thomas Wood  <thomas at openedhand.com>
+
 	* src/detail-area.c: (detail_area_new):
 	* src/navigation-area.c: (navigation_area_new):
 

Modified: trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/Makefile.am
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/Makefile.am	2007-11-02 14:56:43 UTC (rev 3338)
+++ trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/Makefile.am	2007-11-02 16:33:59 UTC (rev 3339)
@@ -14,6 +14,7 @@
                               pixbuf-list.c\
                               select-menu.c\
                               apply-dialog.c\
-                              install-dialog.c
+                              install-dialog.c \
+                              search-bar.c
 
 openmoko_appmanager_LDADD = @OPENMOKO_LIBS@

Modified: trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/appmanager-data.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/appmanager-data.c	2007-11-02 14:56:43 UTC (rev 3338)
+++ trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/appmanager-data.c	2007-11-02 16:33:59 UTC (rev 3339)
@@ -36,7 +36,6 @@
   gint  i;
 
   data->mwindow = NULL;
-  data->filtermenu = NULL;
   data->menubox = NULL;
   data->selectmenu = NULL;
   data->searchentry = NULL;
@@ -85,20 +84,7 @@
   appdata->mwindow = GTK_WIDGET (window);
 }
 
-/*
- * @brief Set the filter menu to the application manager data
- * @param appdata The application manager data struct
- * @param filtermenu The filter menu
- */
-void 
-application_manager_data_set_filter_menu (ApplicationManagerData *appdata,
-                                          GtkMenu *filtermenu)
-{
-  g_return_if_fail (MOKO_IS_APPLICATION_MANAGER_DATA (appdata));
 
-  appdata->filtermenu = filtermenu;
-}
-
 /*
  * @brief Set the menubox to the application manager data
  * @param appdata The application manager data struct
@@ -387,19 +373,7 @@
   return appdata->mwindow;
 }
 
-/*
- * @brief Get the filter menu from the application manager data
- * @param appdata The application manager data
- * @return The filter menu
- */
-GtkMenu *
-application_manager_get_filter_menu (ApplicationManagerData *appdata)
-{
-  g_return_val_if_fail (MOKO_IS_APPLICATION_MANAGER_DATA (appdata), NULL);
 
-  return appdata->filtermenu;
-}
-
 /*
  * @brief Get the menubox from the application manager data
  * @param appdata The application manager data

Modified: trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/appmanager-data.h
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/appmanager-data.h	2007-11-02 14:56:43 UTC (rev 3338)
+++ trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/appmanager-data.h	2007-11-02 16:33:59 UTC (rev 3339)
@@ -54,7 +54,6 @@
   GObject          parent;             /* The parent of the struct */
 
   GtkWidget        *mwindow;           /* The main window */
-  GtkMenu          *filtermenu;        /* The filter menu */
   GtkWidget        *menubox;           /* The menubox */
   GtkMenu          *selectmenu;        /* The select menu */
   GtkEntry         *searchentry;       /* The search entry */
@@ -70,6 +69,8 @@
   GdkPixbuf        *statuspix[N_COUNT_PKG_STATUS];    /* The all pixbufs that need by the package list store */
   gchar            *searchhistory;     /* The search history */
   GtkWidget        *installdialog;     /* The install dialog */
+  
+  GtkTreeModel     *filter_store;      /* GtkListStore for filter menu */
 } ApplicationManagerData;
 
 /*

Modified: trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/appmanager-window.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/appmanager-window.c	2007-11-02 14:56:43 UTC (rev 3338)
+++ trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/appmanager-window.c	2007-11-02 16:33:59 UTC (rev 3339)
@@ -22,7 +22,6 @@
 
 #include "appmanager-window.h"
 #include "application-menu.h"
-#include "filter-menu.h"
 #include "navigation-area.h"
 #include "tool-box.h"
 #include "detail-area.h"
@@ -30,6 +29,7 @@
 #include "errorcode.h"
 #include "package-list.h"
 #include "select-menu.h"
+#include "search-bar.h"
 
 /*
  * @brief The start function.
@@ -42,14 +42,12 @@
   GtkWidget       *menubox;
   GtkWidget       *menuitem;
   GtkWidget       *appmenu;
-  GtkWidget       *filtermenu;
   GtkWidget       *selectmenu;
   GtkWidget       *navigation;
   GtkWidget       *toolbox;
   GtkWidget       *detail;
   GtkWidget       *notebook;
-
-  //GtkWidget       *menubox;
+  GtkWidget *searchbar;
   GtkWidget *vbox;
 
   gint             ret;
@@ -84,9 +82,6 @@
 
   appmenu = application_menu_new (appdata);
 
-  filtermenu = filter_menu_new (appdata);
-  application_manager_data_set_filter_menu (appdata, GTK_MENU (filtermenu));
-
   selectmenu = moko_select_menu_new (appdata);
   application_manager_data_set_select_menu (appdata, GTK_MENU (selectmenu));
 
@@ -102,16 +97,15 @@
   gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), appmenu);
   gtk_menu_shell_append (GTK_MENU_SHELL (menubox), menuitem);
 
-  menuitem = gtk_menu_item_new_with_label ("Filter");
-  gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), filtermenu);
-  gtk_menu_shell_append (GTK_MENU_SHELL (menubox), menuitem);
-
   menuitem = gtk_menu_item_new_with_label ("Select");
   gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), selectmenu);
   gtk_menu_shell_append (GTK_MENU_SHELL (menubox), menuitem);
 
   toolbox = tool_box_new (appdata);
   gtk_box_pack_start (GTK_BOX (vbox), toolbox, FALSE, FALSE, 0);
+  
+  searchbar = search_bar_new (appdata);
+  gtk_box_pack_start (GTK_BOX (vbox), searchbar, FALSE, FALSE, 0);
 
   notebook = gtk_notebook_new ();
   gtk_notebook_set_tab_pos (GTK_NOTEBOOK (notebook), GTK_POS_BOTTOM);
@@ -143,13 +137,12 @@
 
   /* Add section list to the filter menu */
   package_list_add_section_to_filter_menu (appdata);
+  search_bar_set_active_filter (searchbar, FILTER_INSTALLED);
 
-  /* Show the installed package list at initialization */
-  filter_menu_show_install_list (appdata);
-
   gtk_widget_show_all (GTK_WIDGET (window));
   g_debug ("application manager enter main loop");
   gtk_main ();
+  g_debug ("application finished");
 
   return 0;
 }

Deleted: trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/filter-menu.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/filter-menu.c	2007-11-02 14:56:43 UTC (rev 3338)
+++ trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/filter-menu.c	2007-11-02 16:33:59 UTC (rev 3339)
@@ -1,231 +0,0 @@
-/*
- *  @file filter-menu.c
- *  @brief The filter menu item
- *
- *  Copyright (C) 2006-2007 OpenMoko Inc.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU Public License as published by
- *  the Free Software Foundation; version 2 of the license.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU Public License for more details.
- *
- *  Current Version: $Rev$ ($Date$) [$Author$]
- *
- *  @author Chaowei Song (songcw at fic-sh.com.cn)
- */
-#include <string.h>
-
-#include "filter-menu.h"
-#include "appmanager-window.h"
-#include "navigation-area.h"
-#include "package-list.h"
-
-/*
- * @brief The callback function of the search result menuitem.
- */
-static void 
-on_search_result_activate (GtkMenuItem *menuitem, gpointer userdata)
-{
-  g_debug ("Clicked the search result menuitem");
-}
-
-/*
- * @brief The callback function of the installed menuitem.
- */
-static void 
-on_installed_activate (GtkMenuItem *menuitem, gpointer userdata)
-{
-  gpointer     pkglist;
-
-  g_return_if_fail (MOKO_IS_APPLICATION_MANAGER_DATA (userdata));
-  g_debug ("Clicked the installed menuitem");
-
-  pkglist = application_manager_data_get_installedlist (
-                    MOKO_APPLICATION_MANAGER_DATA (userdata));
-
-  navigation_area_refresh_with_package_list (
-          MOKO_APPLICATION_MANAGER_DATA (userdata),
-          pkglist);
-}
-
-/*
- * @brief The callback function of the upgradeable menuitem.
- */
-static void 
-on_upgradeable_activate (GtkMenuItem *menuitem, gpointer userdata)
-{
-  gpointer     pkglist;
-
-  g_return_if_fail (MOKO_IS_APPLICATION_MANAGER_DATA (userdata));
-  g_debug ("Clicked the upgradeable menuitem");
-
-  pkglist = application_manager_data_get_upgradelist (
-                    MOKO_APPLICATION_MANAGER_DATA (userdata));
-
-  navigation_area_refresh_with_package_list (
-          MOKO_APPLICATION_MANAGER_DATA (userdata),
-          pkglist);
-}
-
-/*
- * @brief The callback function of the selected menuitem.
- */
-static void 
-on_selected_activate (GtkMenuItem *menuitem, gpointer userdata)
-{
-  gpointer     pkglist;
-
-  g_return_if_fail (MOKO_IS_APPLICATION_MANAGER_DATA (userdata));
-  g_debug ("Click the selected menuitem");
-
-  pkglist = application_manager_data_get_selectedlist (
-                    MOKO_APPLICATION_MANAGER_DATA (userdata));
-
-  navigation_area_refresh_with_package_list (
-          MOKO_APPLICATION_MANAGER_DATA (userdata),
-          pkglist);
-}
-
-/*
- * @brief The callback function of the dynamic menuitem.
- */
-void 
-on_dynamic_menu_item_activate (GtkMenuItem *menuitem, gpointer userdata)
-{
-  const gchar  *secname;
-  GtkWidget    *label;
-  gint         ret;
-  gpointer     pkglist;
-
-  g_debug ("Click the dynamic menuitem");
-  g_return_if_fail (MOKO_IS_APPLICATION_MANAGER_DATA (userdata));
-  label = gtk_bin_get_child (GTK_BIN (menuitem));
-  g_return_if_fail (GTK_IS_LABEL (label));
-
-  secname = gtk_label_get_text (GTK_LABEL (label));
-  g_debug ("Chose the menuitem:%s", secname);
-  ret = strcmp (secname, PACKAGE_LIST_NO_SECTION_STRING);
-  if (ret == 0)
-    {
-      pkglist = application_manager_data_get_nosecpkglist (
-                      MOKO_APPLICATION_MANAGER_DATA (userdata));
-      navigation_area_refresh_with_package_list (
-                      MOKO_APPLICATION_MANAGER_DATA (userdata), 
-                      pkglist);
-      return;
-    }
-
-  pkglist = package_list_get_with_name (
-          MOKO_APPLICATION_MANAGER_DATA (userdata),
-          secname);
-  if (pkglist == NULL)
-    {
-      g_debug ("Can not find the section that named:%s", secname);
-      return;
-    }
-  navigation_area_refresh_with_package_list (
-          MOKO_APPLICATION_MANAGER_DATA (userdata),
-          pkglist);
-}
-
-/*
- * @brief Create a new filter menu for the application manager
- * 
- * At this function, it only can create the static menu items.
- * It must add the dynamic menu items late.
- * @param appdata The application manager data
- * @return The filter menu.
- */
-GtkWidget *
-filter_menu_new (ApplicationManagerData *appdata)
-{
-  GtkWidget *filtermenu;
-  GtkWidget *searchresult;
-  GtkWidget *installed;
-  GtkWidget *upgradeable;
-  GtkWidget *selected;
-
-  g_debug ("Init the filter filtermenu");
-  g_return_val_if_fail (MOKO_IS_APPLICATION_MANAGER_DATA (appdata), NULL);
-
-  filtermenu = gtk_menu_new ();
-
-  searchresult = gtk_menu_item_new_with_label (_("Search Results"));
-  gtk_widget_show (searchresult);
-  gtk_container_add (GTK_CONTAINER (filtermenu), searchresult);
-  g_signal_connect ((gpointer) searchresult, "activate",
-                    G_CALLBACK (on_search_result_activate), appdata);
-
-  installed = gtk_menu_item_new_with_label (_("Installed"));
-  gtk_widget_show (installed);
-  gtk_container_add (GTK_CONTAINER (filtermenu), installed);
-  g_signal_connect ((gpointer) installed, "activate",
-                    G_CALLBACK (on_installed_activate), appdata);
-
-  upgradeable = gtk_menu_item_new_with_label (_("Upgradeable"));
-  gtk_widget_show (upgradeable);
-  gtk_container_add (GTK_CONTAINER (filtermenu), upgradeable);
-  g_signal_connect ((gpointer) upgradeable, "activate",
-                    G_CALLBACK (on_upgradeable_activate), appdata);
-
-  selected = gtk_menu_item_new_with_label (_("Selected"));
-  gtk_widget_show (selected);
-  gtk_container_add (GTK_CONTAINER (filtermenu), selected);
-  g_signal_connect ((gpointer) selected, "activate",
-                    G_CALLBACK (on_selected_activate), appdata);
-
-  return filtermenu;
-}
-
-/*
- * @brief Add a menu item to the filter menu
- * 
- * @param filtermenu The filter menu
- * @param name The label name of the menu item
- */
-void 
-filter_menu_add_item (GtkMenu                *filtermenu, 
-                      const gchar            *name, 
-                      ApplicationManagerData *appdata)
-{
-  GtkWidget *dymenuitem;
-
-  g_return_if_fail (GTK_IS_MENU (filtermenu));
-  g_debug ("Insert filter menu:%s", name);
-
-  dymenuitem = gtk_menu_item_new_with_label (name);
-  gtk_widget_show (dymenuitem);
-  gtk_container_add (GTK_CONTAINER (filtermenu), dymenuitem);
-  g_signal_connect ((gpointer) dymenuitem, "activate",
-                    G_CALLBACK (on_dynamic_menu_item_activate), appdata);
-
-}
-
-/*
- * @brief Show the installed packages list after initialization or reinitialization
- * @param appdata The application manager data
- */
-void
-filter_menu_show_install_list (ApplicationManagerData *appdata)
-{
-  gpointer     pkglist;
-  GtkWidget   *menubox;
-
-  g_return_if_fail (MOKO_IS_APPLICATION_MANAGER_DATA (appdata));
-
-  pkglist = application_manager_data_get_installedlist (
-                    MOKO_APPLICATION_MANAGER_DATA (appdata));
-
-  navigation_area_refresh_with_package_list (
-          MOKO_APPLICATION_MANAGER_DATA (appdata),
-          pkglist);
-
-  menubox = application_manager_get_menubox (appdata);
-
-  //g_return_if_fail (IS_MOKO_MENU_BOX (menubox));
-  //moko_menu_box_set_active_filter (menubox, _("Installed"));
-}

Deleted: trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/filter-menu.h
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/filter-menu.h	2007-11-02 14:56:43 UTC (rev 3338)
+++ trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/filter-menu.h	2007-11-02 16:33:59 UTC (rev 3339)
@@ -1,36 +0,0 @@
-/*
- *  @file filter-menu.h
- *  @brief The filter menu item
- *
- *  Copyright (C) 2006-2007 OpenMoko Inc.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU Public License as published by
- *  the Free Software Foundation; version 2.1 of the license.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU Public License for more details.
- *
- *  Current Version: $Rev$ ($Date$) [$Author$]
- *
- *  @author Chaowei Song (songcw at fic-sh.com.cn)
- */
-#ifndef _FIC_FILTER_MENU_H
-#define _FIC_FILTER_MENU_H
-
-#include <gtk/gtk.h>
-
-#include "appmanager-data.h"
-
-GtkWidget *filter_menu_new (ApplicationManagerData *appdata);
-
-void filter_menu_add_item (GtkMenu *filtermenu, const gchar *name,
-                           ApplicationManagerData *appdata);
-
-void
-filter_menu_show_install_list (ApplicationManagerData *appdata);
-
-#endif
-

Modified: trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/package-list.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/package-list.c	2007-11-02 14:56:43 UTC (rev 3338)
+++ trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/package-list.c	2007-11-02 16:33:59 UTC (rev 3339)
@@ -22,7 +22,7 @@
 #include "appmanager-data.h"
 #include "package-list.h"
 #include "ipkgapi.h"
-#include "filter-menu.h"
+#include "search-bar.h"
 #include "errorcode.h"
 #include "navigation-area.h"
 #include "install-dialog.h"
@@ -767,7 +767,6 @@
 {
   SectionList  *seclist;
   SectionList  *tmpsec;
-  GtkMenu      *filtermenu;
   PackageList  *tmppkg;
 
   seclist = application_manager_data_get_sectionlist (appdata);
@@ -777,18 +776,11 @@
       return;
     }
 
-  filtermenu = application_manager_get_filter_menu (appdata);
-  if (filtermenu == NULL)
-    {
-      g_debug ("Filter menu not init correctly");
-      return;
-    }
-
   tmpsec = seclist->next;
 
   while (tmpsec != NULL)
     {
-      filter_menu_add_item (filtermenu, tmpsec->name, appdata);
+      search_bar_add_filter_item (appdata, tmpsec->name);
       tmpsec = tmpsec->next;
     }
 
@@ -800,7 +792,7 @@
 
   if (tmppkg->next != tmppkg)
     {
-      filter_menu_add_item (filtermenu, PACKAGE_LIST_NO_SECTION_STRING, appdata);
+      search_bar_add_filter_item (appdata, PACKAGE_LIST_NO_SECTION_STRING);
     }
 }
 

Added: trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/search-bar.c
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/search-bar.c	2007-11-02 14:56:43 UTC (rev 3338)
+++ trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/search-bar.c	2007-11-02 16:33:59 UTC (rev 3339)
@@ -0,0 +1,147 @@
+/*
+ *  Copyright (C) 2006-2007 OpenMoko Inc.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Public License as published by
+ *  the Free Software Foundation; version 2 of the license.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Public License for more details.
+ *
+ *  Author: OpenedHand Ltd <info at openedhand.com>
+ */
+
+#include <string.h>
+
+#include "search-bar.h"
+
+#include "appmanager-data.h"
+#include "navigation-area.h"
+#include "package-list.h"
+
+
+
+static gboolean
+combo_seperator_func (GtkTreeModel *model, GtkTreeIter *iter, gpointer data)
+{
+  gchar *s;
+  gtk_tree_model_get (model, iter, 0, &s, -1);
+  return !s;
+}
+
+static void
+text_changed_cb (MokoSearchBar *searchbar, GtkEditable *editable, ApplicationManagerData *data)
+{
+}
+
+static void
+combo_changed_cb (MokoSearchBar *searchbar, GtkComboBox *combo, ApplicationManagerData *data)
+{
+  int ret;
+  gchar *secname;
+  GtkTreeIter iter;
+  gpointer pkglist;
+  
+  if ((ret = gtk_combo_box_get_active (combo)) < 5)
+  {
+    switch (ret)
+    {
+      case 0:
+        /* installed */
+        g_debug ("Clicked the installed menuitem");
+        pkglist = application_manager_data_get_installedlist (data);
+        navigation_area_refresh_with_package_list (data, pkglist);
+        return;
+      case 1:  
+        /* upgradeable */
+        g_debug ("Clicked the upgradeable menuitem");
+        pkglist = application_manager_data_get_upgradelist (data);
+        navigation_area_refresh_with_package_list (data, pkglist);
+        return;
+      case 2:
+        /* selected */
+        g_debug ("Click the selected menuitem");
+        pkglist = application_manager_data_get_selectedlist (data);
+        navigation_area_refresh_with_package_list (data, pkglist);
+        return;
+    }
+  }
+
+  gtk_combo_box_get_active_iter (combo, &iter);
+  gtk_tree_model_get (data->filter_store, &iter, 0, &secname, -1);
+  
+  ret = strcmp (secname, PACKAGE_LIST_NO_SECTION_STRING);
+  if (ret == 0)
+  {
+    pkglist = application_manager_data_get_nosecpkglist (
+                    MOKO_APPLICATION_MANAGER_DATA (data));
+    navigation_area_refresh_with_package_list (
+                    MOKO_APPLICATION_MANAGER_DATA (data), 
+                    pkglist);
+    return;
+  }
+
+  pkglist = package_list_get_with_name (
+          MOKO_APPLICATION_MANAGER_DATA (data),
+          secname);
+  if (pkglist == NULL)
+  {
+    g_debug ("Can not find the section that named:%s", secname);
+    return;
+  }
+  navigation_area_refresh_with_package_list (
+          MOKO_APPLICATION_MANAGER_DATA (data),
+          pkglist);
+}
+
+static void
+searchbar_toggled_cb (MokoSearchBar *searchbar, gboolean search, ApplicationManagerData *data)
+{
+}
+
+GtkWidget *
+search_bar_new (ApplicationManagerData *appdata)
+{
+  GtkWidget *combo;
+  GtkWidget *searchbar;
+  GtkListStore *filter;
+  GtkCellRenderer *renderer;
+
+  filter = gtk_list_store_new (1, G_TYPE_STRING);
+  appdata->filter_store = GTK_TREE_MODEL (filter);
+
+  gtk_list_store_insert_with_values (filter, NULL, FILTER_INSTALLED, 0, "Installed", -1);
+  gtk_list_store_insert_with_values (filter, NULL, FILTER_UPGRADEABLE, 0, "Upgradeable", -1);
+  gtk_list_store_insert_with_values (filter, NULL, FILTER_SELECTED, 0, "Selected", -1);
+  gtk_list_store_insert_with_values (filter, NULL, 3, 0, NULL, -1);
+  
+  renderer = gtk_cell_renderer_text_new ();
+  
+  combo = gtk_combo_box_new_with_model (GTK_TREE_MODEL (filter));
+  gtk_combo_box_set_row_separator_func (GTK_COMBO_BOX (combo), combo_seperator_func, NULL, NULL);
+  gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo), renderer, TRUE);
+  gtk_cell_layout_add_attribute (GTK_CELL_LAYOUT (combo), renderer, "text", 0);
+  
+  searchbar = moko_search_bar_new_with_combo (GTK_COMBO_BOX (combo));
+  g_signal_connect (searchbar, "combo-changed", G_CALLBACK (combo_changed_cb), appdata);
+  
+  return searchbar;
+}
+
+
+void
+search_bar_add_filter_item (ApplicationManagerData *appdata, gchar *item)
+{
+  gtk_list_store_insert_with_values (GTK_LIST_STORE (appdata->filter_store), NULL, -1, 0, item, -1);
+}
+
+void
+search_bar_set_active_filter (MokoSearchBar *bar, SearchBarFilter filter)
+{
+  GtkComboBox *combo;
+  
+  combo = moko_search_bar_get_combo_box (bar);
+  gtk_combo_box_set_active (combo, filter);
+}

Added: trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/search-bar.h
===================================================================
--- trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/search-bar.h	2007-11-02 14:56:43 UTC (rev 3338)
+++ trunk/src/target/OM-2007.2/applications/openmoko-appmanager2/src/search-bar.h	2007-11-02 16:33:59 UTC (rev 3339)
@@ -0,0 +1,38 @@
+/*
+ *  Copyright (C) 2006-2007 OpenMoko Inc.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU Public License as published by
+ *  the Free Software Foundation; version 2.1 of the license.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU Public License for more details.
+ *
+ *  Author: OpenedHand Ltd. <info at openedhand.com>
+ */
+
+#ifndef SEARCH_BAR_H
+#define SEARCH_BAR_H
+
+#include <gtk/gtk.h>
+#include <moko-search-bar.h>
+
+#include "appmanager-data.h"
+
+
+typedef enum
+{
+  FILTER_INSTALLED,
+  FILTER_UPGRADEABLE,
+  FILTER_SELECTED
+} SearchBarFilter;
+
+GtkWidget* search_bar_new (ApplicationManagerData *appdata);
+void search_bar_add_filter_item (ApplicationManagerData *appdata, gchar *item);
+void search_bar_set_active_filter (MokoSearchBar *bar, SearchBarFilter filter);
+
+
+#endif /* SEARCH_BAR_H */
+





More information about the commitlog mailing list