亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? abookmarkview.c

?? linux手機下的電話本源碼(是contact的上層)
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*  addressbook - Address book *abookmarkview.c -  * *Authors: YE Nan <nan.ye@orange-ftgroup.com> *        ZHAO Liangjing <liangjing.zhao@orange-ftgroup.com>  * *This software and associated documentation files (the "Software")  *are copyright (C) 2005 LiPS Linux Phone Standards Forum [FranceTelecom]  *All Rights Reserved.  * *A copyright license is hereby granted for redistribution and use of  *the Software in source and binary forms, with or without modification,  *provided that the following conditions are met:  *- Redistributions of source code must retain the above copyright notice,  *this copyright license and the following disclaimer.  *- Redistributions in binary form must reproduce the above copyright  *notice, this copyright license and the following disclaimer in the  *documentation and/or other materials provided with the distribution.  *- Neither the name of LiPS  nor the names of its Members may be used  *to endorse or promote products derived from the Software without  *specific prior written permission.  * *A patent license for any Necessary Claims owned by Members of LiPS Forum  *to make, have made, use, import, offer to sell, lease and sell or otherwise  *distribute any implementation compliant with the any specification adopted  *by the LiPS Forumcan be obtained from the respective Members on reasonable  *and non-discriminatory terms and conditions and under reciprocity, as  *regulated in more detail in the Internal Policy of the LiPS Forum.  * *THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER, ITS MEMBERS AND CONTRIBUTORS  *"AS IS", AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,  *THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE  *AND NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER,  *ITS MEMBERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,  *SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,  *PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;  *OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,  *WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)  *ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE  *POSSIBILITY OF SUCH DAMAGE.  */#include <libintl.h>#include <ctype.h>#include <gtk/gtk.h>#include <gdk/gdkkeysyms.h>#include "abookmarkview.h"#include "abookenv.h"#define _(x) gettext(x)static void abook_markview_class_init (ABookMarkViewClass *klass);static void abook_markview_init (ABookMarkView *window);GTypeabook_markview_get_type (void){  static GType markview_type = 0;  if (!markview_type)  {    static const GTypeInfo markview_info = {      sizeof (ABookMarkViewClass),      NULL,                     /* base_init */      NULL,                     /* base_finalize */      (GClassInitFunc) abook_markview_class_init,      NULL,                     /* class_finalize */      NULL,                     /* class_data */      sizeof (ABookMarkView),      0,                        /* n_preallocs */      (GInstanceInitFunc) abook_markview_init,    };    markview_type =      g_type_register_static (GTK_TYPE_FRAME, "ABookMarkView", &markview_info,                              0);  }  return markview_type;}static voidabook_markview_class_init (ABookMarkViewClass *klass){  return;}static voidabook_markview_toggled_cb (GtkCellRendererToggle *celltoggle,                           gchar *pathstr, GtkTreeView *tree){  GtkTreeModel *model = NULL;  GtkTreePath *path = NULL;  GtkTreeIter iter;  gboolean active;  model = gtk_tree_view_get_model (tree);  path = gtk_tree_path_new_from_string (pathstr);  if (!gtk_tree_model_get_iter (model, &iter, path))  {    g_print ("%s(): bad path %s\n", __FUNCTION__, pathstr);    return;  }  if (model)  {    gtk_tree_model_get (GTK_TREE_MODEL (model),                        &iter, COL_MV_CHECK, &active, -1);    active = !active;    gtk_tree_store_set (GTK_TREE_STORE (model),                        &iter, COL_MV_CHECK, active, -1);    /* we also need to modify the active state     *of relative parent of children     */    if (gtk_tree_path_get_depth (path) > 1)    {      /* means the current node is a child node */      GtkTreePath *parent_path = NULL;      GtkTreeIter parent_iter;      parent_path = gtk_tree_path_copy (path);      if (gtk_tree_path_up (parent_path) &&          gtk_tree_model_get_iter (model, &parent_iter, parent_path))      {        gint n_children = 0;        gint n_active = 0;        gint i;        n_children = gtk_tree_model_iter_n_children (model, &parent_iter);        for (i = 0; i < n_children; i++)        {          GtkTreeIter child_iter;          if (gtk_tree_model_iter_nth_child              (model, &child_iter, &parent_iter, i))          {            gboolean child_active;            gtk_tree_model_get (GTK_TREE_MODEL (model),                                &child_iter, COL_MV_CHECK, &child_active, -1);            if (child_active)            {              n_active++;            }          }        }        gtk_tree_store_set (GTK_TREE_STORE (model),                            &parent_iter,                            COL_MV_CHECK, (n_active >= n_children), -1);      }      gtk_tree_path_free (parent_path);      if (TRUE)      {        GtkTreeIter first_iter;        if (gtk_tree_model_get_iter_first (model, &first_iter))        {          gtk_tree_store_set (GTK_TREE_STORE (model),                              &first_iter, COL_MV_CHECK, FALSE, -1);        }      }    }    else    {      /* else it is a top-level node */      GtkTreePath *root = NULL;      root = gtk_tree_path_new_first ();      if (!gtk_tree_path_compare (path, root))      {//                              g_print("%s(): Select all\n", __FUNCTION__);        gint n_persons = 0;        gint i;        n_persons = gtk_tree_model_iter_n_children (model, NULL);//                              g_print("%s(): n_person = %d\n", __FUNCTION__, n_persons);        for (i = 1; i < n_persons; i++)        {          GtkTreeIter person_iter;          gint n_numbers = 0;          gint j;          if (gtk_tree_model_iter_nth_child (model, &person_iter, NULL, i))          {            gtk_tree_store_set (GTK_TREE_STORE (model),                                &person_iter, COL_MV_CHECK, active, -1);          }          n_numbers = gtk_tree_model_iter_n_children (model, &person_iter);          for (j = 0; j < n_numbers; j++)          {            GtkTreeIter num_iter;            if (gtk_tree_model_iter_nth_child                (model, &num_iter, &person_iter, j))            {              gtk_tree_store_set (GTK_TREE_STORE (model),                                  &num_iter, COL_MV_CHECK, active, -1);            }          }        }      }      else      {        gint n_children = 0;        gint i;//                              g_print("%s(): Select one\n", __FUNCTION__);        if (TRUE)        {          GtkTreeIter first_iter;          if (gtk_tree_model_get_iter_first (model, &first_iter))          {            gtk_tree_store_set (GTK_TREE_STORE (model),                                &first_iter, COL_MV_CHECK, FALSE, -1);          }        }        n_children = gtk_tree_model_iter_n_children (model, &iter);        for (i = 0; i < n_children; i++)        {          GtkTreeIter child_iter;          if (gtk_tree_model_iter_nth_child (model, &child_iter, &iter, i))          {            gtk_tree_store_set (GTK_TREE_STORE (model),                                &child_iter, COL_MV_CHECK, active, -1);          }        }      }    }  }  gtk_tree_path_free (path);  return;}static gbooleanabook_markview_treeview_key_press_event_cb (GtkWidget *widget,                                            GdkEventKey *event,                                            ABookMarkView *view){  GtkTreeView *treeview = GTK_TREE_VIEW (view->treeview);//      g_print("%s(): entering\n", __FUNCTION__);  if (event->keyval == GDK_Right)  {    GtkTreePath *path = NULL;    GtkTreeViewColumn *col = NULL;    gtk_tree_view_get_cursor (treeview, &path, &col);    if (path && gtk_tree_path_get_depth (path) == 1)    {      //GtkTreeModel *model = NULL;      gtk_tree_view_expand_row (treeview, path, FALSE);#if 0      model = gtk_tree_view_get_model (treeview);      if (model)      {        GtkTreeIter parent_iter;        if (gtk_tree_model_get_iter (model, &parent_iter, path))        {          GtkTreeIter iter;          if (gtk_tree_model_iter_children (model, &iter, &parent_iter))          {            GtkTreePath *focus_path = NULL;            focus_path = gtk_tree_model_get_path (model, &iter);            gtk_tree_view_set_cursor (treeview, focus_path, col, FALSE);            gtk_tree_path_free (focus_path);          }        }      }#endif    }    return TRUE;  }  else if (event->keyval == GDK_Left)  {    GtkTreePath *path = NULL;    GtkTreeViewColumn *col = NULL;    gtk_tree_view_get_cursor (treeview, &path, &col);    if (path)    {      if (gtk_tree_path_get_depth (path) > 1)      {        gtk_tree_path_up (path);        if (path)        {          gtk_tree_view_set_cursor (treeview, path, col, FALSE);        }      }      else      {        gtk_tree_view_collapse_row (treeview, path);      }    }    return TRUE;  }  else if (event->keyval == GDK_Up)  {    GtkTreePath *path = NULL;    GtkTreePath *first = NULL;    GtkTreeViewColumn *col = NULL;    gboolean result = FALSE;    gtk_tree_view_get_cursor (treeview, &path, &col);    first = gtk_tree_path_new_first ();    result = !gtk_tree_path_compare (path, first);    gtk_tree_path_free (first);    if (path && result)    {      GtkTreeModel *model = NULL;      model = gtk_tree_view_get_model (treeview);      if (model)      {        GtkTreeIter iter;        if (gtk_tree_model_iter_nth_child            (model, &iter, NULL,             gtk_tree_model_iter_n_children (model, NULL) - 1))        {          GtkTreePath *last = NULL;          last = gtk_tree_model_get_path (model, &iter);          if (gtk_tree_view_row_expanded (treeview, last))          {            GtkTreeIter child_iter;            if (gtk_tree_model_iter_nth_child                (model, &child_iter, &iter,                 gtk_tree_model_iter_n_children (model, &iter) - 1))            {              gtk_tree_path_free (last);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区公司| 国产69精品一区二区亚洲孕妇 | 亚洲福中文字幕伊人影院| 久久亚洲春色中文字幕久久久| 欧美美女直播网站| 88在线观看91蜜桃国自产| 欧美一区二区三区的| 日韩欧美一二区| 久久精品网站免费观看| 欧美国产一区二区| 亚洲啪啪综合av一区二区三区| 亚洲美女免费在线| 日韩成人一区二区三区在线观看| 日本亚洲免费观看| 国产精品99久久久久久宅男| 激情六月婷婷久久| 成人的网站免费观看| 色呦呦日韩精品| 正在播放亚洲一区| 国产婷婷色一区二区三区| 亚洲另类春色校园小说| 亚洲成av人影院| 国产精品一区久久久久| 一本大道久久a久久综合婷婷| 日韩欧美国产精品| 国产日产欧美精品一区二区三区| 国产精品福利一区| 午夜影院久久久| 丁香婷婷综合五月| 欧美剧在线免费观看网站 | 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 日韩毛片精品高清免费| 午夜欧美电影在线观看| 国产在线不卡视频| 欧美性欧美巨大黑白大战| 精品国产91乱码一区二区三区| 亚洲国产电影在线观看| 日本不卡一二三| 99热这里都是精品| 欧美成人猛片aaaaaaa| 亚洲视频1区2区| 国产高清亚洲一区| 欧美高清精品3d| 亚洲色图视频网| 国产一区二区h| 欧美一级艳片视频免费观看| 国产精品欧美极品| 韩国一区二区视频| 91.xcao| 亚洲乱码国产乱码精品精可以看| 久久国产精品免费| 欧美激情中文字幕一区二区| 一级特黄大欧美久久久| 成人晚上爱看视频| 久久香蕉国产线看观看99| 午夜欧美视频在线观看| 91成人网在线| 亚洲免费在线播放| 成人精品免费看| 国产欧美精品在线观看| 激情欧美一区二区三区在线观看| 这里只有精品免费| 三级成人在线视频| 欧美精品一二三| 亚洲国产欧美另类丝袜| 欧美性大战久久久久久久蜜臀| 中文字幕在线不卡| 99久久精品费精品国产一区二区| 国产日产欧产精品推荐色| 国产经典欧美精品| 国产亚洲欧美在线| 处破女av一区二区| 国产精品免费视频网站| 成人午夜看片网址| 国产精品传媒视频| 色婷婷国产精品| 一区二区三区精品| 欧美男人的天堂一二区| 天堂成人免费av电影一区| 5月丁香婷婷综合| 青青草伊人久久| 久久亚洲综合av| 风间由美一区二区三区在线观看| 国产欧美一区二区三区在线老狼| 国产精品996| 国产精品久久久久久久久免费相片| 成人一区二区视频| 亚洲色图19p| 欧美乱妇一区二区三区不卡视频| 日韩国产精品久久久久久亚洲| 日韩一区和二区| 粉嫩av一区二区三区粉嫩| 中文字幕中文字幕一区| 欧美视频一区二区在线观看| 日韩专区欧美专区| 国产偷v国产偷v亚洲高清| av亚洲精华国产精华| 香蕉av福利精品导航| 久久综合五月天婷婷伊人| 成人h动漫精品一区二区| 亚洲一区免费视频| 中文字幕永久在线不卡| 欧美丰满高潮xxxx喷水动漫| 国产精品一二三四| 亚洲一区二区视频在线| 2023国产精华国产精品| 色欧美日韩亚洲| 久久99国产精品免费网站| 国产精品护士白丝一区av| 欧美另类久久久品| 成人国产在线观看| 日本中文字幕不卡| 亚洲欧美在线观看| 日韩一区二区三区电影| 91免费在线看| 狠狠狠色丁香婷婷综合久久五月| 国产精品久久久久三级| 日韩免费观看2025年上映的电影| 成人h版在线观看| 久久精工是国产品牌吗| 亚洲精品一卡二卡| 欧美极品少妇xxxxⅹ高跟鞋| 884aa四虎影成人精品一区| av电影在线观看完整版一区二区| 奇米影视一区二区三区小说| 亚洲人成影院在线观看| 26uuu色噜噜精品一区二区| 精品视频一区二区不卡| av在线免费不卡| 国产精品一色哟哟哟| 热久久一区二区| 五月天久久比比资源色| 亚洲欧美日韩国产手机在线 | 亚洲国产精品精华液2区45| 51精品秘密在线观看| 欧洲在线/亚洲| 99视频有精品| 99视频有精品| 懂色av一区二区在线播放| 国产精品一区二区久激情瑜伽| 国产成人av福利| 日本aⅴ亚洲精品中文乱码| 亚洲狠狠爱一区二区三区| 一区二区三区四区国产精品| 国产精品国产三级国产aⅴ原创 | 国产一区二区女| 麻豆精品久久久| 美女脱光内衣内裤视频久久网站| 午夜电影一区二区| 日韩经典一区二区| 日韩电影在线免费观看| 性感美女久久精品| 日本特黄久久久高潮| 视频精品一区二区| 蜜臀av性久久久久蜜臀aⅴ流畅 | 国产黄色成人av| 国产一区免费电影| 国产成人在线影院| 成人av在线网站| 日本韩国欧美三级| 欧美日韩免费观看一区二区三区 | 国产日韩欧美不卡| 亚洲国产高清aⅴ视频| 日韩毛片在线免费观看| 亚洲黄色在线视频| 天天影视涩香欲综合网| 欧美a级理论片| 韩国一区二区在线观看| 成人一级片在线观看| 99re这里只有精品视频首页| 色94色欧美sute亚洲线路一ni| 欧美午夜电影网| 日韩欧美二区三区| 国产精品国产精品国产专区不蜜 | 久久综合九色综合97婷婷| 一区二区三区四区不卡在线| 亚洲免费成人av| 免费在线观看一区二区三区| 国产综合成人久久大片91| 成人久久视频在线观看| 欧美中文字幕一区| 精品国产成人系列| 亚洲综合久久久久| 韩国毛片一区二区三区| 91免费观看视频在线| 欧美一区二区三区免费大片 | 欧美一区二区三区精品| 国产亚洲欧洲一区高清在线观看| 亚洲视频综合在线| 精品在线观看免费| 欧美在线视频不卡| 久久久精品欧美丰满| 香蕉乱码成人久久天堂爱免费| 国产精品综合视频| 欧美精品色一区二区三区| 国产女主播在线一区二区| 亚洲一区二区av电影| 国产91丝袜在线18| 欧美一区二区三区婷婷月色| 最新国产成人在线观看|