Mercurial > dwindows
comparison gtk/dw.c @ 60:61869769c050
Sync with the latest DW code.
author | bsmith@81767d24-ef19-dc11-ae90-00e081727c95 |
---|---|
date | Thu, 29 Nov 2001 15:10:39 +0000 |
parents | 1ed95c8ec2ff |
children | a6801a2260af |
comparison
equal
deleted
inserted
replaced
59:286ffd8e8ed8 | 60:61869769c050 |
---|---|
963 if(!handle) | 963 if(!handle) |
964 return 0; | 964 return 0; |
965 | 965 |
966 DW_MUTEX_LOCK; | 966 DW_MUTEX_LOCK; |
967 gtk_widget_show(handle); | 967 gtk_widget_show(handle); |
968 gdk_window_raise(GTK_WIDGET(handle)->window); | 968 if(GTK_WIDGET(handle)->window) |
969 gdk_flush(); | 969 { |
970 gdk_window_show(GTK_WIDGET(handle)->window); | 970 gdk_window_raise(GTK_WIDGET(handle)->window); |
971 gdk_flush(); | 971 gdk_flush(); |
972 gdk_window_show(GTK_WIDGET(handle)->window); | |
973 gdk_flush(); | |
974 } | |
972 defaultitem = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(handle), "defaultitem"); | 975 defaultitem = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(handle), "defaultitem"); |
973 if(defaultitem) | 976 if(defaultitem) |
974 gtk_widget_grab_focus(defaultitem); | 977 gtk_widget_grab_focus(defaultitem); |
975 DW_MUTEX_UNLOCK; | 978 DW_MUTEX_UNLOCK; |
976 return 0; | 979 return 0; |
1775 { | 1778 { |
1776 gtk_widget_destroy(tmp); | 1779 gtk_widget_destroy(tmp); |
1777 DW_MUTEX_UNLOCK; | 1780 DW_MUTEX_UNLOCK; |
1778 return FALSE; | 1781 return FALSE; |
1779 } | 1782 } |
1783 gtk_tree_set_view_mode(GTK_TREE(tree), GTK_TREE_VIEW_ITEM); | |
1784 gtk_tree_set_selection_mode(GTK_TREE(tree), GTK_SELECTION_SINGLE); | |
1780 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(tmp), tree); | 1785 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(tmp), tree); |
1781 /* Set the selection mode */ | 1786 /* Set the selection mode */ |
1782 gtk_tree_set_selection_mode (GTK_TREE(tree), GTK_SELECTION_SINGLE); | 1787 gtk_tree_set_selection_mode (GTK_TREE(tree), GTK_SELECTION_SINGLE); |
1783 | 1788 |
1784 gtk_object_set_user_data(GTK_OBJECT(tmp), (gpointer)tree); | 1789 gtk_object_set_user_data(GTK_OBJECT(tmp), (gpointer)tree); |
2075 * Create a new listbox window (widget) to be packed. | 2080 * Create a new listbox window (widget) to be packed. |
2076 * Parameters: | 2081 * Parameters: |
2077 * id: An ID to be used with WinWindowFromID() or 0L. | 2082 * id: An ID to be used with WinWindowFromID() or 0L. |
2078 * multi: Multiple select TRUE or FALSE. | 2083 * multi: Multiple select TRUE or FALSE. |
2079 */ | 2084 */ |
2080 HWND dw_listbox_new(unsigned long id, int multi) | 2085 HWND dw_listbox_new(unsigned long id, int multi) |
2081 { | 2086 { |
2082 GtkWidget *tmp, *list; | 2087 GtkWidget *tmp, *list; |
2083 int _locked_by_me = FALSE; | 2088 int _locked_by_me = FALSE; |
2084 | 2089 |
2085 DW_MUTEX_LOCK; | 2090 DW_MUTEX_LOCK; |
2107 * handle: Handle to the window. | 2112 * handle: Handle to the window. |
2108 * id: An ID to be used to specify the icon. | 2113 * id: An ID to be used to specify the icon. |
2109 */ | 2114 */ |
2110 void dw_window_set_icon(HWND handle, unsigned long id) | 2115 void dw_window_set_icon(HWND handle, unsigned long id) |
2111 { | 2116 { |
2112 GdkBitmap *bitmap; | 2117 GdkBitmap *bitmap = NULL; |
2113 GdkPixmap *icon_pixmap; | 2118 GdkPixmap *icon_pixmap; |
2114 int _locked_by_me = FALSE; | 2119 int _locked_by_me = FALSE; |
2115 | 2120 |
2116 DW_MUTEX_LOCK; | 2121 DW_MUTEX_LOCK; |
2117 icon_pixmap = _find_pixmap(&bitmap, id, handle); | 2122 icon_pixmap = _find_pixmap(&bitmap, id, handle); |
2128 * handle: Handle to the window. | 2133 * handle: Handle to the window. |
2129 * id: An ID to be used to specify the icon. | 2134 * id: An ID to be used to specify the icon. |
2130 */ | 2135 */ |
2131 void dw_window_set_bitmap(HWND handle, unsigned long id) | 2136 void dw_window_set_bitmap(HWND handle, unsigned long id) |
2132 { | 2137 { |
2133 GdkBitmap *bitmap; | 2138 GdkBitmap *bitmap = NULL; |
2134 GdkPixmap *tmp; | 2139 GdkPixmap *tmp; |
2135 int _locked_by_me = FALSE; | 2140 int _locked_by_me = FALSE; |
2136 | 2141 |
2137 DW_MUTEX_LOCK; | 2142 DW_MUTEX_LOCK; |
2138 tmp = _find_pixmap(&bitmap, id, handle); | 2143 tmp = _find_pixmap(&bitmap, id, handle); |
2738 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(handle), value); | 2743 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(handle), value); |
2739 DW_MUTEX_UNLOCK; | 2744 DW_MUTEX_UNLOCK; |
2740 } | 2745 } |
2741 | 2746 |
2742 /* | 2747 /* |
2748 * Inserts an item into a tree window (widget) after another item. | |
2749 * Parameters: | |
2750 * handle: Handle to the tree to be inserted. | |
2751 * item: Handle to the item to be positioned after. | |
2752 * title: The text title of the entry. | |
2753 * icon: Handle to coresponding icon. | |
2754 * parent: Parent handle or 0 if root. | |
2755 * itemdata: Item specific data. | |
2756 */ | |
2757 HWND dw_tree_insert_after(HWND handle, HWND item, char *title, unsigned long icon, HWND parent, void *itemdata) | |
2758 { | |
2759 GtkWidget *newitem, *tree, *subtree, *label, *hbox, *pixmap; | |
2760 GdkPixmap *gdkpix; | |
2761 GdkBitmap *gdkbmp = NULL; | |
2762 int position = 0; | |
2763 int _locked_by_me = FALSE; | |
2764 | |
2765 if(!handle) | |
2766 return NULL; | |
2767 | |
2768 DW_MUTEX_LOCK; | |
2769 tree = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); | |
2770 if(!tree || !GTK_IS_TREE(tree)) | |
2771 { | |
2772 DW_MUTEX_UNLOCK; | |
2773 return NULL; | |
2774 } | |
2775 | |
2776 if(item && GTK_IS_TREE_ITEM(item)) | |
2777 position = gtk_tree_child_position(GTK_TREE(tree), item); | |
2778 | |
2779 position++; | |
2780 | |
2781 newitem = gtk_tree_item_new(); | |
2782 label = gtk_label_new(title); | |
2783 gtk_object_set_data(GTK_OBJECT(newitem), "text", (gpointer)strdup(title)); | |
2784 gtk_object_set_data(GTK_OBJECT(newitem), "itemdata", (gpointer)itemdata); | |
2785 gtk_object_set_data(GTK_OBJECT(newitem), "tree", (gpointer)tree); | |
2786 hbox = gtk_hbox_new(FALSE, 2); | |
2787 gtk_object_set_data(GTK_OBJECT(newitem), "hbox", (gpointer)hbox); | |
2788 gdkpix = _find_pixmap(&gdkbmp, icon, hbox); | |
2789 pixmap = gtk_pixmap_new(gdkpix, gdkbmp); | |
2790 gtk_container_add(GTK_CONTAINER(newitem), hbox); | |
2791 gtk_box_pack_start(GTK_BOX(hbox), pixmap, FALSE, TRUE, 0); | |
2792 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, TRUE, 0); | |
2793 gtk_widget_show(label); | |
2794 gtk_widget_show(pixmap); | |
2795 gtk_widget_show(hbox); | |
2796 | |
2797 if(parent) | |
2798 { | |
2799 subtree = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(parent)); | |
2800 if(!subtree) | |
2801 { | |
2802 void *thisfunc = (void *)gtk_object_get_data(GTK_OBJECT(tree), "select-child-func"); | |
2803 void *work = (void *)gtk_object_get_data(GTK_OBJECT(tree), "select-child-data"); | |
2804 | |
2805 subtree = gtk_tree_new(); | |
2806 | |
2807 if(thisfunc && work) | |
2808 gtk_signal_connect(GTK_OBJECT(subtree), "select-child", GTK_SIGNAL_FUNC(thisfunc), work); | |
2809 | |
2810 thisfunc = (void *)gtk_object_get_data(GTK_OBJECT(tree), "container-context-func"); | |
2811 work = (void *)gtk_object_get_data(GTK_OBJECT(tree), "container-context-data"); | |
2812 | |
2813 if(thisfunc && work) | |
2814 gtk_signal_connect(GTK_OBJECT(subtree), "button_press_event", GTK_SIGNAL_FUNC(thisfunc), work); | |
2815 | |
2816 gtk_object_set_user_data(GTK_OBJECT(parent), subtree); | |
2817 gtk_tree_set_selection_mode(GTK_TREE(subtree), GTK_SELECTION_SINGLE); | |
2818 gtk_tree_set_view_mode(GTK_TREE(subtree), GTK_TREE_VIEW_ITEM); | |
2819 gtk_tree_item_set_subtree(GTK_TREE_ITEM(parent), subtree); | |
2820 gtk_tree_item_collapse(GTK_TREE_ITEM(parent)); | |
2821 gtk_widget_show(subtree); | |
2822 gtk_tree_item_expand(GTK_TREE_ITEM(parent)); | |
2823 gtk_tree_item_collapse(GTK_TREE_ITEM(parent)); | |
2824 } | |
2825 gtk_object_set_data(GTK_OBJECT(newitem), "parenttree", (gpointer)subtree); | |
2826 gtk_tree_insert(GTK_TREE(subtree), newitem, position); | |
2827 } | |
2828 else | |
2829 { | |
2830 gtk_object_set_data(GTK_OBJECT(newitem), "parenttree", (gpointer)tree); | |
2831 gtk_tree_insert(GTK_TREE(tree), newitem, position); | |
2832 } | |
2833 gtk_tree_item_expand(GTK_TREE_ITEM(newitem)); | |
2834 gtk_tree_item_collapse(GTK_TREE_ITEM(newitem)); | |
2835 gtk_widget_show(newitem); | |
2836 DW_MUTEX_UNLOCK; | |
2837 return newitem; | |
2838 } | |
2839 | |
2840 /* | |
2743 * Inserts an item into a tree window (widget). | 2841 * Inserts an item into a tree window (widget). |
2744 * Parameters: | 2842 * Parameters: |
2745 * handle: Handle to the tree to be inserted. | 2843 * handle: Handle to the tree to be inserted. |
2746 * title: The text title of the entry. | 2844 * title: The text title of the entry. |
2747 * icon: Handle to coresponding icon. | 2845 * icon: Handle to coresponding icon. |
2750 */ | 2848 */ |
2751 HWND dw_tree_insert(HWND handle, char *title, unsigned long icon, HWND parent, void *itemdata) | 2849 HWND dw_tree_insert(HWND handle, char *title, unsigned long icon, HWND parent, void *itemdata) |
2752 { | 2850 { |
2753 GtkWidget *item, *tree, *subtree, *label, *hbox, *pixmap; | 2851 GtkWidget *item, *tree, *subtree, *label, *hbox, *pixmap; |
2754 GdkPixmap *gdkpix; | 2852 GdkPixmap *gdkpix; |
2755 GdkBitmap *gdkbmp; | 2853 GdkBitmap *gdkbmp = NULL; |
2756 int _locked_by_me = FALSE; | 2854 int _locked_by_me = FALSE; |
2855 | |
2856 if(!handle) | |
2857 return NULL; | |
2757 | 2858 |
2758 DW_MUTEX_LOCK; | 2859 DW_MUTEX_LOCK; |
2759 tree = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); | 2860 tree = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); |
2760 if(!tree || !GTK_IS_TREE(tree)) | 2861 if(!tree || !GTK_IS_TREE(tree)) |
2761 { | 2862 { |
2804 gtk_tree_item_collapse(GTK_TREE_ITEM(parent)); | 2905 gtk_tree_item_collapse(GTK_TREE_ITEM(parent)); |
2805 gtk_widget_show(subtree); | 2906 gtk_widget_show(subtree); |
2806 gtk_tree_item_expand(GTK_TREE_ITEM(parent)); | 2907 gtk_tree_item_expand(GTK_TREE_ITEM(parent)); |
2807 gtk_tree_item_collapse(GTK_TREE_ITEM(parent)); | 2908 gtk_tree_item_collapse(GTK_TREE_ITEM(parent)); |
2808 } | 2909 } |
2910 gtk_object_set_data(GTK_OBJECT(item), "parenttree", (gpointer)subtree); | |
2809 gtk_tree_append(GTK_TREE(subtree), item); | 2911 gtk_tree_append(GTK_TREE(subtree), item); |
2810 } | 2912 } |
2811 else | 2913 else |
2914 { | |
2915 gtk_object_set_data(GTK_OBJECT(item), "parenttree", (gpointer)tree); | |
2812 gtk_tree_append(GTK_TREE(tree), item); | 2916 gtk_tree_append(GTK_TREE(tree), item); |
2917 } | |
2813 gtk_tree_item_expand(GTK_TREE_ITEM(item)); | 2918 gtk_tree_item_expand(GTK_TREE_ITEM(item)); |
2814 gtk_tree_item_collapse(GTK_TREE_ITEM(item)); | 2919 gtk_tree_item_collapse(GTK_TREE_ITEM(item)); |
2815 gtk_widget_show(item); | 2920 gtk_widget_show(item); |
2816 DW_MUTEX_UNLOCK; | 2921 DW_MUTEX_UNLOCK; |
2817 return item; | 2922 return item; |
2827 */ | 2932 */ |
2828 void dw_tree_set(HWND handle, HWND item, char *title, unsigned long icon) | 2933 void dw_tree_set(HWND handle, HWND item, char *title, unsigned long icon) |
2829 { | 2934 { |
2830 GtkWidget *label, *hbox, *pixmap; | 2935 GtkWidget *label, *hbox, *pixmap; |
2831 GdkPixmap *gdkpix; | 2936 GdkPixmap *gdkpix; |
2832 GdkBitmap *gdkbmp; | 2937 GdkBitmap *gdkbmp = NULL; |
2833 char *oldtext; | 2938 char *oldtext; |
2834 int _locked_by_me = FALSE; | 2939 int _locked_by_me = FALSE; |
2940 | |
2941 if(!handle || !item) | |
2942 return; | |
2835 | 2943 |
2836 DW_MUTEX_LOCK; | 2944 DW_MUTEX_LOCK; |
2837 oldtext = (char *)gtk_object_get_data(GTK_OBJECT(item), "text"); | 2945 oldtext = (char *)gtk_object_get_data(GTK_OBJECT(item), "text"); |
2838 if(oldtext) | 2946 if(oldtext) |
2839 free(oldtext); | 2947 free(oldtext); |
2863 */ | 2971 */ |
2864 void dw_tree_set_data(HWND handle, HWND item, void *itemdata) | 2972 void dw_tree_set_data(HWND handle, HWND item, void *itemdata) |
2865 { | 2973 { |
2866 int _locked_by_me = FALSE; | 2974 int _locked_by_me = FALSE; |
2867 | 2975 |
2976 if(!handle || !item) | |
2977 return; | |
2978 | |
2868 DW_MUTEX_LOCK; | 2979 DW_MUTEX_LOCK; |
2869 gtk_object_set_data(GTK_OBJECT(item), "itemdata", (gpointer)itemdata); | 2980 gtk_object_set_data(GTK_OBJECT(item), "itemdata", (gpointer)itemdata); |
2870 DW_MUTEX_UNLOCK; | 2981 DW_MUTEX_UNLOCK; |
2871 } | 2982 } |
2872 | 2983 |
2878 */ | 2989 */ |
2879 void dw_tree_item_select(HWND handle, HWND item) | 2990 void dw_tree_item_select(HWND handle, HWND item) |
2880 { | 2991 { |
2881 GtkWidget *lastselect; | 2992 GtkWidget *lastselect; |
2882 int _locked_by_me = FALSE; | 2993 int _locked_by_me = FALSE; |
2994 | |
2995 if(!handle || !item) | |
2996 return; | |
2883 | 2997 |
2884 DW_MUTEX_LOCK; | 2998 DW_MUTEX_LOCK; |
2885 lastselect = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(handle), "lastselect"); | 2999 lastselect = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(handle), "lastselect"); |
2886 if(lastselect && GTK_IS_TREE_ITEM(lastselect)) | 3000 if(lastselect && GTK_IS_TREE_ITEM(lastselect)) |
2887 gtk_tree_item_deselect(GTK_TREE_ITEM(lastselect)); | 3001 gtk_tree_item_deselect(GTK_TREE_ITEM(lastselect)); |
2898 void dw_tree_clear(HWND handle) | 3012 void dw_tree_clear(HWND handle) |
2899 { | 3013 { |
2900 GtkWidget *tree; | 3014 GtkWidget *tree; |
2901 int _locked_by_me = FALSE; | 3015 int _locked_by_me = FALSE; |
2902 | 3016 |
3017 if(!handle) | |
3018 return; | |
3019 | |
2903 DW_MUTEX_LOCK; | 3020 DW_MUTEX_LOCK; |
2904 tree = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); | 3021 tree = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); |
2905 if(!tree || !GTK_IS_TREE(tree)) | 3022 if(!tree || !GTK_IS_TREE(tree)) |
2906 { | 3023 { |
2907 DW_MUTEX_UNLOCK; | 3024 DW_MUTEX_UNLOCK; |
2919 */ | 3036 */ |
2920 void dw_tree_expand(HWND handle, HWND item) | 3037 void dw_tree_expand(HWND handle, HWND item) |
2921 { | 3038 { |
2922 int _locked_by_me = FALSE; | 3039 int _locked_by_me = FALSE; |
2923 | 3040 |
3041 if(!handle || !item) | |
3042 return; | |
3043 | |
2924 DW_MUTEX_LOCK; | 3044 DW_MUTEX_LOCK; |
2925 if(GTK_IS_TREE_ITEM(item)) | 3045 if(GTK_IS_TREE_ITEM(item)) |
2926 gtk_tree_item_expand(GTK_TREE_ITEM(item)); | 3046 gtk_tree_item_expand(GTK_TREE_ITEM(item)); |
2927 DW_MUTEX_UNLOCK; | 3047 DW_MUTEX_UNLOCK; |
2928 } | 3048 } |
2935 */ | 3055 */ |
2936 void dw_tree_collapse(HWND handle, HWND item) | 3056 void dw_tree_collapse(HWND handle, HWND item) |
2937 { | 3057 { |
2938 int _locked_by_me = FALSE; | 3058 int _locked_by_me = FALSE; |
2939 | 3059 |
3060 if(!handle || !item) | |
3061 return; | |
3062 | |
2940 DW_MUTEX_LOCK; | 3063 DW_MUTEX_LOCK; |
2941 if(GTK_IS_TREE_ITEM(item)) | 3064 if(GTK_IS_TREE_ITEM(item)) |
2942 gtk_tree_item_collapse(GTK_TREE_ITEM(item)); | 3065 gtk_tree_item_collapse(GTK_TREE_ITEM(item)); |
2943 DW_MUTEX_UNLOCK; | 3066 DW_MUTEX_UNLOCK; |
2944 } | 3067 } |
2949 * handle: Handle to the window (widget) to be cleared. | 3072 * handle: Handle to the window (widget) to be cleared. |
2950 * item: Handle to node to be deleted. | 3073 * item: Handle to node to be deleted. |
2951 */ | 3074 */ |
2952 void dw_tree_delete(HWND handle, HWND item) | 3075 void dw_tree_delete(HWND handle, HWND item) |
2953 { | 3076 { |
2954 GtkWidget *tree, *lastselect; | 3077 GtkWidget *tree, *lastselect, *parenttree; |
2955 int _locked_by_me = FALSE; | 3078 int _locked_by_me = FALSE; |
3079 | |
3080 if(!handle || !item || !GTK_IS_WIDGET(handle) || !GTK_IS_WIDGET(item)) | |
3081 return; | |
2956 | 3082 |
2957 DW_MUTEX_LOCK; | 3083 DW_MUTEX_LOCK; |
2958 tree = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); | 3084 tree = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); |
2959 if(!tree || !GTK_IS_TREE(tree)) | 3085 if(!tree || !GTK_IS_TREE(tree)) |
2960 { | 3086 { |
2961 DW_MUTEX_UNLOCK; | 3087 DW_MUTEX_UNLOCK; |
2962 return; | 3088 return; |
2963 } | 3089 } |
2964 | 3090 |
2965 lastselect = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(handle), "lastselect"); | 3091 lastselect = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(handle), "lastselect"); |
3092 | |
2966 if(lastselect == item) | 3093 if(lastselect == item) |
3094 { | |
3095 if(lastselect && GTK_IS_WIDGET(lastselect)) | |
3096 { | |
3097 parenttree = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(lastselect), "parenttree"); | |
3098 if(parenttree && GTK_IS_TREE(parenttree)) | |
3099 gtk_tree_unselect_child(GTK_TREE(parenttree), lastselect); | |
3100 } | |
2967 gtk_object_set_data(GTK_OBJECT(handle), "lastselect", NULL); | 3101 gtk_object_set_data(GTK_OBJECT(handle), "lastselect", NULL); |
2968 | 3102 } |
2969 gtk_widget_destroy(item); | 3103 |
3104 parenttree = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(item), "parenttree"); | |
3105 | |
3106 if(parenttree && GTK_IS_WIDGET(parenttree)) | |
3107 gtk_tree_remove_item(GTK_TREE(parenttree), item); | |
2970 DW_MUTEX_UNLOCK; | 3108 DW_MUTEX_UNLOCK; |
2971 } | 3109 } |
2972 | 3110 |
2973 int _dw_container_setup(HWND handle, unsigned long *flags, char **titles, int count, int separator, int extra) | 3111 int _dw_container_setup(HWND handle, unsigned long *flags, char **titles, int count, int separator, int extra) |
2974 { | 3112 { |
3154 flag = (int)gtk_object_get_data(GTK_OBJECT(clist), numbuf); | 3292 flag = (int)gtk_object_get_data(GTK_OBJECT(clist), numbuf); |
3155 | 3293 |
3156 if(flag & DW_CFA_BITMAPORICON) | 3294 if(flag & DW_CFA_BITMAPORICON) |
3157 { | 3295 { |
3158 long hicon = *((long *)data); | 3296 long hicon = *((long *)data); |
3159 GdkBitmap *bitmap; | 3297 GdkBitmap *bitmap = NULL; |
3160 GdkPixmap *pixmap = _find_pixmap(&bitmap, hicon, clist); | 3298 GdkPixmap *pixmap = _find_pixmap(&bitmap, hicon, clist); |
3161 | 3299 |
3162 if(pixmap) | 3300 if(pixmap) |
3163 gtk_clist_set_pixmap(GTK_CLIST(clist), row, column, pixmap, bitmap); | 3301 gtk_clist_set_pixmap(GTK_CLIST(clist), row, column, pixmap, bitmap); |
3164 } | 3302 } |
3548 DW_MUTEX_UNLOCK; | 3686 DW_MUTEX_UNLOCK; |
3549 } | 3687 } |
3550 | 3688 |
3551 GdkGC *_set_colors(GdkWindow *window) | 3689 GdkGC *_set_colors(GdkWindow *window) |
3552 { | 3690 { |
3553 GdkGC *gc; | 3691 GdkGC *gc = NULL; |
3554 int index = _find_thread_index(dw_thread_id()); | 3692 int index = _find_thread_index(dw_thread_id()); |
3555 | 3693 |
3556 if(!window) | 3694 if(!window) |
3557 return NULL; | 3695 return NULL; |
3558 gc = gdk_gc_new(window); | 3696 gc = gdk_gc_new(window); |
3766 * Returns: | 3904 * Returns: |
3767 * A handle to a pixmap or NULL on failure. | 3905 * A handle to a pixmap or NULL on failure. |
3768 */ | 3906 */ |
3769 HPIXMAP dw_pixmap_grab(HWND handle, ULONG id) | 3907 HPIXMAP dw_pixmap_grab(HWND handle, ULONG id) |
3770 { | 3908 { |
3771 GdkBitmap *bitmap; | 3909 GdkBitmap *bitmap = NULL; |
3772 HPIXMAP pixmap; | 3910 HPIXMAP pixmap; |
3773 int _locked_by_me = FALSE; | 3911 int _locked_by_me = FALSE; |
3774 | 3912 |
3775 if (!(pixmap = calloc(1,sizeof(struct _hpixmap)))) | 3913 if (!(pixmap = calloc(1,sizeof(struct _hpixmap)))) |
3776 return NULL; | 3914 return NULL; |
4845 } | 4983 } |
4846 DW_MUTEX_UNLOCK; | 4984 DW_MUTEX_UNLOCK; |
4847 } | 4985 } |
4848 | 4986 |
4849 /* | 4987 /* |
4988 * Returns the index to the current selected item or -1 when done. | |
4989 * Parameters: | |
4990 * handle: Handle to the listbox to be queried. | |
4991 * where: Either the previous return or -1 to restart. | |
4992 */ | |
4993 int dw_listbox_selected_multi(HWND handle, int where) | |
4994 { | |
4995 GtkWidget *handle2 = handle; | |
4996 int retval = DW_LIT_NONE; | |
4997 int _locked_by_me = FALSE; | |
4998 | |
4999 DW_MUTEX_LOCK; | |
5000 if(GTK_IS_SCROLLED_WINDOW(handle)) | |
5001 { | |
5002 GtkWidget *tmp = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle)); | |
5003 if(tmp) | |
5004 handle2 = tmp; | |
5005 } | |
5006 if(GTK_IS_LIST(handle2)) | |
5007 { | |
5008 int counter = 0; | |
5009 GList *list = GTK_LIST(handle2)->selection; | |
5010 while(list) | |
5011 { | |
5012 if(counter > where) | |
5013 { | |
5014 retval = counter; | |
5015 break; | |
5016 } | |
5017 | |
5018 list = list->next; | |
5019 counter++; | |
5020 } | |
5021 } | |
5022 DW_MUTEX_UNLOCK; | |
5023 return retval; | |
5024 } | |
5025 | |
5026 /* | |
4850 * Returns the index to the item in the list currently selected. | 5027 * Returns the index to the item in the list currently selected. |
4851 * Parameters: | 5028 * Parameters: |
4852 * handle: Handle to the listbox to be queried. | 5029 * handle: Handle to the listbox to be queried. |
4853 */ | 5030 */ |
4854 unsigned int dw_listbox_selected(HWND handle) | 5031 unsigned int dw_listbox_selected(HWND handle) |