📄 common.c
字号:
lpctrl->ctrl = gtk_clist_new_with_titles(column, titles); lpctrl->scrolled_window = gtk_append_scrollctrl(lpctrl->ctrl); if(window!=NULL) gtk_container_add (GTK_CONTAINER (window), lpctrl->scrolled_window); gtk_widget_show_all (lpctrl->scrolled_window); return lpctrl->scrolled_window;}GtkWidget *treectrl_createnew(GtkWidget *window,GtkScrollCtrl *lpctrl){ if(lpctrl->regsignal==GTK_WIDGET_REG) return (lpctrl->scrolled_window); else lpctrl->regsignal=GTK_WIDGET_REG; lpctrl->ctrl = gtk_tree_new(); lpctrl->scrolled_window = gtk_append_scrollviewport(lpctrl->ctrl); if(window!=NULL) gtk_container_add (GTK_CONTAINER (window), lpctrl->scrolled_window); gtk_widget_show_all (lpctrl->scrolled_window); return lpctrl->scrolled_window;}/* ----------------- list box -------------*/#define listbox_itemdata_key ("LBIDK")GtkWidget *listbox_createnew(GtkWidget *window,GtkScrollCtrl *lpctrl){ if(lpctrl->regsignal==GTK_WIDGET_REG) return (lpctrl->scrolled_window); else lpctrl->regsignal=GTK_WIDGET_REG; lpctrl->ctrl = gtk_list_new(); gtk_list_set_selection_mode(GTK_LIST(lpctrl->ctrl),GTK_SELECTION_SINGLE); lpctrl->scrolled_window = gtk_append_scrollviewport(lpctrl->ctrl); if(window!=NULL) gtk_container_add (GTK_CONTAINER (window), lpctrl->scrolled_window); gtk_widget_show_all (lpctrl->scrolled_window); return lpctrl->scrolled_window;}gint listbox_insertitem(GtkScrollCtrl lpctrl,GtkListBoxItemData item, gint index){ GtkWidget *label; GtkWidget *list_item; GList *dlist; if(lpctrl.regsignal!=GTK_WIDGET_REG) return -1; if(index<0) index=0; label=gtk_label_new (item.itemname); g_object_set_data (G_OBJECT (label), listbox_itemdata_key, (gpointer)item.itemdata); list_item=gtk_list_item_new (); gtk_container_add (GTK_CONTAINER (list_item), label); gtk_widget_show (label); dlist = g_list_prepend (NULL, list_item); gtk_list_insert_items (GTK_LIST (lpctrl.ctrl), dlist,index); gtk_widget_show (list_item); g_object_set_data (G_OBJECT (list_item), listbox_itemdata_key, label ); return 0;}gint listbox_getitem(GtkScrollCtrl lpctrl,GtkListBoxItemData *lpitem, gint index){ GList *dlist=NULL; GtkWidget *label=NULL; gint curidx=0; if(lpitem==NULL||lpctrl.regsignal!=GTK_WIDGET_REG) return -1; if(index<0) index=0; if(GTK_LIST(lpctrl.ctrl)==NULL) return -1; /* Fetch the doubly linked list of selected items * of the List, remember to treat this as read-only! */ dlist=GTK_LIST (lpctrl.ctrl)->children; while(dlist) { if(curidx==index) { break; } else { dlist=dlist->next; curidx++; } } /* If there are no selected items there is nothing more * to do than just telling the user so */ if (!dlist) return -1; label=(GtkWidget*) g_object_get_data (G_OBJECT (dlist->data),listbox_itemdata_key); if(label==NULL) return -1; sprintf(lpitem->itemname,"%s",(char *)gtk_label_get_text(GTK_LABEL(label))); lpitem->itemdata= (gulong)g_object_get_data (G_OBJECT (label),listbox_itemdata_key); return index;}gint listbox_getselectitem(GtkScrollCtrl lpctrl,GtkListBoxItemData *lpitem){ GList *dlist=NULL; GtkWidget *label=NULL; if(lpitem==NULL||lpctrl.regsignal!=GTK_WIDGET_REG) return -1; if(GTK_LIST(lpctrl.ctrl)==NULL) return -1; /* Fetch the doubly linked list of selected items * of the List, remember to treat this as read-only! */ dlist = GTK_LIST (lpctrl.ctrl)->selection; /* If there are no selected items there is nothing more * to do than just telling the user so */ if (!dlist) return -1; label=(GtkWidget*) g_object_get_data (G_OBJECT (dlist->data),listbox_itemdata_key); if(label==NULL) return -1; sprintf(lpitem->itemname,"%s",(char *)gtk_label_get_text(GTK_LABEL(label))); lpitem->itemdata= (gulong)g_object_get_data (G_OBJECT (label),listbox_itemdata_key); return listbox_getseletemark(lpctrl);}gint listbox_deleteitem(GtkScrollCtrl lpctrl, gint index){ gint curidx=0; GList *dlist=NULL; if(lpctrl.regsignal!=GTK_WIDGET_REG) return -1; if(index<0) index=0; if(GTK_LIST(lpctrl.ctrl)==NULL) return -1; dlist=GTK_LIST(lpctrl.ctrl)->children; while(dlist) { if(curidx==index) { gtk_list_unselect_all(GTK_LIST(lpctrl.ctrl)); if(dlist==GTK_LIST (lpctrl.ctrl)->children) { GTK_LIST (lpctrl.ctrl)->children=dlist->next; if(dlist->next) dlist->next->prev=dlist->prev; } else { if(dlist->prev) dlist->prev->next=dlist->next; if(dlist->next) dlist->next->prev=dlist->prev; } dlist->prev=0; dlist->next=0; gtk_list_remove_items(GTK_LIST(lpctrl.ctrl),dlist); break; } else { dlist=dlist->next; curidx++; } } if(!dlist) curidx=-1; return curidx;}gint listbox_deleteitems(GtkScrollCtrl lpctrl){ gint count=0; GList *dlist=NULL; if(lpctrl.regsignal!=GTK_WIDGET_REG) return -1; if(GTK_LIST(lpctrl.ctrl)==NULL) return -1; dlist=(GTK_LIST(lpctrl.ctrl))->children; while(dlist) { count++; dlist=dlist->next; } dlist=GTK_LIST (lpctrl.ctrl)->children ; if(dlist) { if(dlist->prev) dlist->prev->next=0; dlist->prev=0; gtk_list_remove_items(GTK_LIST(lpctrl.ctrl),dlist); } return count;}gint listbox_getitemcount(GtkScrollCtrl lpctrl){ gint count=0; GList *dlist=NULL; if(lpctrl.regsignal!=GTK_WIDGET_REG) return -1; if(GTK_LIST(lpctrl.ctrl)==NULL) return -1; dlist=GTK_LIST(lpctrl.ctrl)->children; while(dlist) { count++; dlist=dlist->next; } return count;}gint listbox_getseletemark(GtkScrollCtrl lpctrl){ gint count=0; GList *dlist=NULL,*dsel=NULL; if(lpctrl.regsignal!=GTK_WIDGET_REG) return -1; if(GTK_LIST(lpctrl.ctrl)==NULL) return -1; dlist=GTK_LIST (lpctrl.ctrl)->children; dsel=GTK_LIST (lpctrl.ctrl)->selection; while(dlist&&dsel) { if(dsel->data==dlist->data) break; dlist=dlist->next; count++; } if((!dlist)||(!dsel)) count=-1; return count;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -