Mercurial > dwindows
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: |