comparison gtk/dw.c @ 130:54014258099a

Added most of the missing code for the MLE's for GTK 2.0.
author bsmith@81767d24-ef19-dc11-ae90-00e081727c95
date Sun, 20 Oct 2002 13:07:08 +0000
parents a05b6fb9c545
children 594307469c79
comparison
equal deleted inserted replaced
129:e47c52b37cdd 130:54014258099a
2425 2425
2426 tbuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (tmp)); 2426 tbuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (tmp));
2427 gtk_text_buffer_get_iter_at_offset(tbuffer, &iter, startpoint); 2427 gtk_text_buffer_get_iter_at_offset(tbuffer, &iter, startpoint);
2428 gtk_text_buffer_place_cursor(tbuffer, &iter); 2428 gtk_text_buffer_place_cursor(tbuffer, &iter);
2429 gtk_text_buffer_insert_at_cursor(tbuffer, impbuf, -1); 2429 gtk_text_buffer_insert_at_cursor(tbuffer, impbuf, -1);
2430 tmppoint = startpoint + strlen(impbuf);
2430 free(impbuf); 2431 free(impbuf);
2431 } 2432 }
2432 #else 2433 #else
2433 GdkFont *font = (GdkFont *)gtk_object_get_data(GTK_OBJECT(handle), "gdkfont"); 2434 GdkFont *font = (GdkFont *)gtk_object_get_data(GTK_OBJECT(handle), "gdkfont");
2434 2435
2459 * startpoint: Point to start grabbing text. 2460 * startpoint: Point to start grabbing text.
2460 * length: Amount of text to be grabbed. 2461 * length: Amount of text to be grabbed.
2461 */ 2462 */
2462 void dw_mle_export(HWND handle, char *buffer, int startpoint, int length) 2463 void dw_mle_export(HWND handle, char *buffer, int startpoint, int length)
2463 { 2464 {
2465 int _locked_by_me = FALSE;
2466 gchar *text;
2467
2468 DW_MUTEX_LOCK;
2464 #if GTK_MAJOR_VERSION > 1 2469 #if GTK_MAJOR_VERSION > 1
2470 if(GTK_IS_SCROLLED_WINDOW(handle))
2465 #else 2471 #else
2466 int _locked_by_me = FALSE;
2467 gchar *text;
2468
2469 DW_MUTEX_LOCK;
2470 if(GTK_IS_BOX(handle)) 2472 if(GTK_IS_BOX(handle))
2473 #endif
2471 { 2474 {
2472 GtkWidget *tmp = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(handle), "mle"); 2475 GtkWidget *tmp = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(handle), "mle");
2473 2476
2477 #if GTK_MAJOR_VERSION > 1
2478 if(tmp && GTK_IS_TEXT_VIEW(tmp))
2479 {
2480 GtkTextBuffer *tbuffer;
2481 GtkTextIter start, end;
2482
2483 tbuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (tmp));
2484 gtk_text_buffer_get_iter_at_offset(tbuffer, &start, startpoint);
2485 gtk_text_buffer_get_iter_at_offset(tbuffer, &end, startpoint + length);
2486 text = gtk_text_iter_get_text(&start, &end);
2487 if(text) /* Should this get freed? */
2488 strcpy(buffer, text);
2489 }
2490 #else
2474 if(tmp && GTK_IS_TEXT(tmp)) 2491 if(tmp && GTK_IS_TEXT(tmp))
2475 { 2492 {
2476 text = gtk_editable_get_chars(GTK_EDITABLE(&(GTK_TEXT(tmp)->editable)), startpoint, startpoint + length); 2493 text = gtk_editable_get_chars(GTK_EDITABLE(&(GTK_TEXT(tmp)->editable)), startpoint, startpoint + length);
2477 if(text) 2494 if(text)
2478 { 2495 {
2479 strcpy(buffer, text); 2496 strcpy(buffer, text);
2480 g_free(text); 2497 g_free(text);
2481 } 2498 }
2482 } 2499 }
2483 }
2484 DW_MUTEX_UNLOCK;
2485 #endif 2500 #endif
2501 }
2502 DW_MUTEX_UNLOCK;
2486 } 2503 }
2487 2504
2488 /* 2505 /*
2489 * Obtains information about an MLE box. 2506 * Obtains information about an MLE box.
2490 * Parameters: 2507 * Parameters:
2562 { 2579 {
2563 int _locked_by_me = FALSE; 2580 int _locked_by_me = FALSE;
2564 2581
2565 DW_MUTEX_LOCK; 2582 DW_MUTEX_LOCK;
2566 #if GTK_MAJOR_VERSION > 1 2583 #if GTK_MAJOR_VERSION > 1
2584 if(GTK_IS_SCROLLED_WINDOW(handle))
2567 #else 2585 #else
2568 if(GTK_IS_BOX(handle)) 2586 if(GTK_IS_BOX(handle))
2587 #endif
2569 { 2588 {
2570 GtkWidget *tmp = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(handle), "mle"); 2589 GtkWidget *tmp = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(handle), "mle");
2571 2590
2591 #if GTK_MAJOR_VERSION > 1
2592 if(tmp && GTK_IS_TEXT_VIEW(tmp))
2593 {
2594 GtkTextBuffer *tbuffer;
2595 GtkTextIter start, end;
2596
2597 tbuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (tmp));
2598 gtk_text_buffer_get_iter_at_offset(tbuffer, &start, startpoint);
2599 gtk_text_buffer_get_iter_at_offset(tbuffer, &end, startpoint + length);
2600 gtk_text_buffer_delete(tbuffer, &start, &end);
2601 }
2602 #else
2572 if(tmp && GTK_IS_TEXT(tmp)) 2603 if(tmp && GTK_IS_TEXT(tmp))
2573 { 2604 {
2574 gtk_text_set_point(GTK_TEXT(tmp), startpoint); 2605 gtk_text_set_point(GTK_TEXT(tmp), startpoint);
2575 gtk_text_forward_delete(GTK_TEXT(tmp), length); 2606 gtk_text_forward_delete(GTK_TEXT(tmp), length);
2576 } 2607 }
2577 }
2578 #endif 2608 #endif
2609 }
2579 DW_MUTEX_UNLOCK; 2610 DW_MUTEX_UNLOCK;
2580 } 2611 }
2581 2612
2582 /* 2613 /*
2583 * Clears all text from an MLE box. 2614 * Clears all text from an MLE box.
2731 { 2762 {
2732 int _locked_by_me = FALSE; 2763 int _locked_by_me = FALSE;
2733 2764
2734 DW_MUTEX_LOCK; 2765 DW_MUTEX_LOCK;
2735 #if GTK_MAJOR_VERSION > 1 2766 #if GTK_MAJOR_VERSION > 1
2767 if(GTK_IS_SCROLLED_WINDOW(handle))
2736 #else 2768 #else
2737 if(GTK_IS_BOX(handle)) 2769 if(GTK_IS_BOX(handle))
2770 #endif
2738 { 2771 {
2739 GtkWidget *tmp = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(handle), "mle"); 2772 GtkWidget *tmp = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(handle), "mle");
2740 2773
2774 #if GTK_MAJOR_VERSION > 1
2775 if(tmp && GTK_IS_TEXT_VIEW(tmp))
2776 {
2777 GtkTextBuffer *tbuffer;
2778 GtkTextIter iter;
2779
2780 tbuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (tmp));
2781 gtk_text_buffer_get_iter_at_offset(tbuffer, &iter, point);
2782 gtk_text_buffer_place_cursor(tbuffer, &iter);
2783 }
2784 #else
2741 if(tmp && GTK_IS_TEXT(tmp)) 2785 if(tmp && GTK_IS_TEXT(tmp))
2742 { 2786 {
2743 unsigned long chars; 2787 unsigned long chars;
2744 float pos, ratio; 2788 float pos, ratio;
2745 2789
2753 2797
2754 gtk_adjustment_set_value(GTK_TEXT(tmp)->vadj, pos); 2798 gtk_adjustment_set_value(GTK_TEXT(tmp)->vadj, pos);
2755 } 2799 }
2756 gtk_text_set_point(GTK_TEXT(tmp), point); 2800 gtk_text_set_point(GTK_TEXT(tmp), point);
2757 } 2801 }
2758 }
2759 #endif 2802 #endif
2803 }
2760 DW_MUTEX_UNLOCK; 2804 DW_MUTEX_UNLOCK;
2761 } 2805 }
2762 2806
2763 /* 2807 /*
2764 * Finds text in an MLE box. 2808 * Finds text in an MLE box.
2772 { 2816 {
2773 int _locked_by_me = FALSE, retval = 0; 2817 int _locked_by_me = FALSE, retval = 0;
2774 2818
2775 DW_MUTEX_LOCK; 2819 DW_MUTEX_LOCK;
2776 #if GTK_MAJOR_VERSION > 1 2820 #if GTK_MAJOR_VERSION > 1
2821 if(GTK_IS_SCROLLED_WINDOW(handle))
2777 #else 2822 #else
2778 if(GTK_IS_BOX(handle)) 2823 if(GTK_IS_BOX(handle))
2824 #endif
2779 { 2825 {
2780 GtkWidget *tmp = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(handle), "mle"); 2826 GtkWidget *tmp = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(handle), "mle");
2781 2827
2828 #if GTK_MAJOR_VERSION > 1
2829 if(tmp && GTK_IS_TEXT_VIEW(tmp))
2830 {
2831 GtkTextBuffer *tbuffer;
2832 GtkTextIter iter, found;
2833
2834 tbuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (tmp));
2835 gtk_text_buffer_get_iter_at_offset(tbuffer, &iter, point);
2836 gtk_text_iter_forward_search(&iter, text, GTK_TEXT_SEARCH_TEXT_ONLY, &found, NULL, NULL);
2837 retval = gtk_text_iter_get_offset(&found);
2838 }
2839 #else
2782 if(tmp && GTK_IS_TEXT(tmp)) 2840 if(tmp && GTK_IS_TEXT(tmp))
2783 { 2841 {
2784 int len = gtk_text_get_length(GTK_TEXT(tmp)); 2842 int len = gtk_text_get_length(GTK_TEXT(tmp));
2785 gchar *tmpbuf; 2843 gchar *tmpbuf;
2786 2844
2815 } 2873 }
2816 2874
2817 g_free(tmpbuf); 2875 g_free(tmpbuf);
2818 } 2876 }
2819 } 2877 }
2820 }
2821 #endif 2878 #endif
2879 }
2822 DW_MUTEX_UNLOCK; 2880 DW_MUTEX_UNLOCK;
2823 return retval; 2881 return retval;
2824 } 2882 }
2825 2883
2826 /* 2884 /*
2828 * Parameters: 2886 * Parameters:
2829 * handle: Handle to the MLE to freeze. 2887 * handle: Handle to the MLE to freeze.
2830 */ 2888 */
2831 void dw_mle_freeze(HWND handle) 2889 void dw_mle_freeze(HWND handle)
2832 { 2890 {
2833 int _locked_by_me = FALSE; 2891 #if GTK_MAJOR_VERSION < 2
2834 2892 int _locked_by_me = FALSE;
2835 DW_MUTEX_LOCK; 2893
2836 #if GTK_MAJOR_VERSION > 1 2894 DW_MUTEX_LOCK;
2837 #else
2838 if(GTK_IS_BOX(handle)) 2895 if(GTK_IS_BOX(handle))
2839 { 2896 {
2840 GtkWidget *tmp = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(handle), "mle"); 2897 GtkWidget *tmp = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(handle), "mle");
2841 2898
2842 if(tmp && GTK_IS_TEXT(tmp)) 2899 if(tmp && GTK_IS_TEXT(tmp))
2843 { 2900 {
2844 gtk_text_freeze(GTK_TEXT(tmp)); 2901 gtk_text_freeze(GTK_TEXT(tmp));
2845 } 2902 }
2846 } 2903 }
2904 DW_MUTEX_UNLOCK;
2847 #endif 2905 #endif
2848 DW_MUTEX_UNLOCK;
2849 } 2906 }
2850 2907
2851 /* 2908 /*
2852 * Resumes redrawing of an MLE box. 2909 * Resumes redrawing of an MLE box.
2853 * Parameters: 2910 * Parameters:
2854 * handle: Handle to the MLE to thaw. 2911 * handle: Handle to the MLE to thaw.
2855 */ 2912 */
2856 void dw_mle_thaw(HWND handle) 2913 void dw_mle_thaw(HWND handle)
2857 { 2914 {
2858 int _locked_by_me = FALSE; 2915 #if GTK_MAJOR_VERSION < 2
2859 2916 int _locked_by_me = FALSE;
2860 DW_MUTEX_LOCK; 2917
2861 #if GTK_MAJOR_VERSION > 1 2918 DW_MUTEX_LOCK;
2862 #else
2863 if(GTK_IS_BOX(handle)) 2919 if(GTK_IS_BOX(handle))
2864 { 2920 {
2865 GtkWidget *tmp = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(handle), "mle"); 2921 GtkWidget *tmp = (GtkWidget *)gtk_object_get_data(GTK_OBJECT(handle), "mle");
2866 2922
2867 if(tmp && GTK_IS_TEXT(tmp)) 2923 if(tmp && GTK_IS_TEXT(tmp))
2868 { 2924 {
2869 gtk_text_thaw(GTK_TEXT(tmp)); 2925 gtk_text_thaw(GTK_TEXT(tmp));
2870 } 2926 }
2871 } 2927 }
2928 DW_MUTEX_UNLOCK;
2872 #endif 2929 #endif
2873 DW_MUTEX_UNLOCK;
2874 } 2930 }
2875 2931
2876 /* 2932 /*
2877 * Returns the range of the percent bar. 2933 * Returns the range of the percent bar.
2878 * Parameters: 2934 * Parameters: