[Glade-users] Changing Text Size

Ishan Chattopadhyaya ishanchattopadhyaya@hclinfinet.com
Tue, 1 Jul 2003 23:12:13 +0530


This is a multi-part message in MIME format.

------=_NextPart_000_000B_01C34026.349C4FA0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

Add the font name to fload gchar. Use fontsel for the same.

Regds,
Ishan

void
apply_font_to_widget (GtkWidget *widget, gchar *fload)
{
    GtkStyle *style = gtk_style_new();
    gdk_font_unref(style->font);
    style->font = gdk_font_load(fload);
    gtk_widget_set_style(GTK_WIDGET(widget), style);
}


----- Original Message ----- 
From: "Henry Granados" <granados73@hotmail.com>
To: <glade-users@lists.ximian.com>
Sent: Tuesday, July 08, 2003 11:39 PM
Subject: [Glade-users] Changing Text Size


> Currently I am using Glade very extensively to build basic user
> applications for our predominantly Linux environment.  I am using Glade
> 1.1.3.  I have had a lot of success using Glade.  The one thing that I
> cannot be able to do so far is change the text size on labels, buttons,
> etc.  Is there on option on the Glade panels to change text or font
> size?  If not can you direct me to finding the proper code for "C" to be
> able to change font or text size?  Thank you for your time.
> 
> Henry Granados
> 
> _________________________________________________________________
> Protect your PC - get McAfee.com VirusScan Online  
> http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963
> 
> _______________________________________________
> Glade-users maillist  -  Glade-users@lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/glade-users
> 

------=_NextPart_000_000B_01C34026.349C4FA0
Content-Type: application/octet-stream;
	name="gabook.c"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: attachment;
	filename="gabook.c"

#include <gtk/gtk.h>
#include <stdio.h>
#include "callbacks.h"
#include "interface.h"
#include "support.h"
#include "myheader.h"

#ifdef WIN32
#	include "windows.h"
#   include <dirent.h>
#endif


#include <glib.h>
#include <direct.h>


#define BUFFER_SIZE 8192


void Color_Widget_bg (int r, int g, int b, GtkWidget *widget)
{
    GdkColor color =3D { 0, r, g, b };
    GtkRcStyle *rc_style =3D gtk_rc_style_new ();

    rc_style->bg[GTK_STATE_NORMAL] =3D color;
    rc_style->color_flags[GTK_STATE_NORMAL] |=3D GTK_RC_BG;
    gtk_widget_modify_style (widget, rc_style);
    gtk_rc_style_unref (rc_style);
}


void Color_Widget_fg (int r, int g, int b, GtkWidget *widget)
{
    GdkColor color =3D { 0, r, g, b };
    GtkRcStyle *rc_style =3D gtk_rc_style_new ();

    rc_style->fg[GTK_STATE_NORMAL] =3D color;
    rc_style->color_flags[GTK_STATE_NORMAL] |=3D GTK_RC_FG;
    gtk_widget_modify_style (widget, rc_style);
    gtk_rc_style_unref (rc_style);

}


void
Font_Widget (GtkWidget *widget, gchar *fload)
{
    GtkStyle *style =3D gtk_style_new();
    gdk_font_unref(style->font);
    style->font =3D gdk_font_load(fload);
    gtk_widget_set_style(GTK_WIDGET(widget), style);
}


void=20
menu_popup (GtkWidget *widget, GdkEvent *event)
{

    GtkMenu *menu;
    GdkEventButton *event_button;

    menu=3DGTK_MENU (widget);

    event_button =3D (GdkEventButton *) event;
    gtk_menu_popup (menu, NULL, NULL, NULL, NULL, event_button->button, =
event_button->time);
    gtk_widget_draw_focus (GTK_WIDGET(menu));

}

gchar*
glade_util_make_absolute_path (const gchar *dir, const gchar *file)
{
  gint dir_pos, file_pos, len, root_pos =3D 0;
  gchar *path;

  g_return_val_if_fail (dir !=3D NULL, NULL);

  if (file =3D=3D NULL || file[0] =3D=3D '\0')
    return g_strdup (dir);

  if (g_path_is_absolute (file))
    return g_strdup (file);

  /* For windows if dir has a drive set, e.g. "C:\", we never delete =
that. */
#ifdef NATIVE_WIN32
  if (isalpha (dir[0]) && dir[1] =3D=3D ':' && dir[2] =3D=3D =
G_DIR_SEPARATOR)
    root_pos =3D 2;
#endif

  /* Start at last character in dir. */
  dir_pos =3D strlen (dir) - 1;

  /* First we make sure we skip any '/' at the end of dir. */
  if (dir_pos > root_pos && dir[dir_pos] =3D=3D G_DIR_SEPARATOR)
    dir_pos--;

  /* Now for each '..' in file, we step back one component in dir, and
     forward one component in file. */
  file_pos =3D 0;
  for (;;)
    {
      /* Skip './' */
      if (file[file_pos] =3D=3D '.' && file[file_pos + 1] =3D=3D =
G_DIR_SEPARATOR)
	file_pos +=3D 2;

      else if (file[file_pos] =3D=3D '.' && file[file_pos + 1] =3D=3D =
'.'
	       && (file[file_pos + 2] =3D=3D G_DIR_SEPARATOR
		   || file[file_pos + 2] =3D=3D '\0'))
	{
	  while (dir_pos > root_pos && dir[dir_pos] !=3D G_DIR_SEPARATOR)
	    dir_pos--;
	  if (dir_pos > root_pos)
	    dir_pos--;

	  if (file[file_pos + 2] =3D=3D G_DIR_SEPARATOR)
	    file_pos +=3D 3;
	  else
	    file_pos +=3D 2;
	}

      else
	break;
    }

  /* Now concatenate the parts of dir and file together. */
  if (dir_pos > root_pos)
    dir_pos++;
  len =3D dir_pos + 1 + (strlen (file) - file_pos) + 1;
  path =3D g_malloc (len);=20
  strncpy (path, dir, dir_pos);
  path[dir_pos] =3D G_DIR_SEPARATOR;
  strcpy (path + dir_pos + 1, file + file_pos);
  return path;
}

gchar *Get_Filename()
{
	return "";
}

void
Tree_List_Init (GtkWidget *button, GtkWidget *statusbar, gpointer =
user_data)
{

    GtkWidget *ctree =3D lookup_widget(GTK_WIDGET(button),"ctree1");
    GtkWidget *clist1 =3D lookup_widget(GTK_WIDGET(button),"clist1");
    char *line[1];=20
    GtkCTreeNode *n2, *n3;
    char *xyz1, *xyz=3D"";=20
	gchar *data_to_be_displayed[1];
	gboolean new_entry=3DFALSE;
	FILE *config_file;
	FILE *temp;
	gchar *buffer=3D"",*char_extracted=3D"";
	gint loopvar;
	gint cat_or_file=3D0;
	gint temp_counter=3D0;

#ifndef WIN32
    int fileexists;
    FILE *fp;
#endif

    /*statusbar=3Dlookup_widget(GTK_WIDGET(button), "statusbar1");
    gtk_statusbar_push (GTK_STATUSBAR (statusbar), 1, "Welcome to =
Address Book Program.");
*/
    //gtk_clist_freeze (GTK_CLIST(ctree));

	gtk_clist_clear(GTK_CLIST(ctree));

#ifndef WIN32
    fileexists =3D g_file_exists (g_strdup_printf("%s/%s",  =
g_get_home_dir(), ".gabook/.config"));
	if (fileexists =3D=3D 0)
	{
		system(g_strdup_printf("%s/%s", "mkdir ", g_strdup_printf("%s/%s", =20
			g_get_home_dir(), ".gabook")) );
	    fp =3D fopen (g_strdup_printf("%s/%s",  g_get_home_dir(), =
".gabook/.config"), "w");
	    fclose (fp);
	}
#endif
	=09

	config_file =3D fopen ("gabook.config", "r");

	for(;;)
	{
		=09
		temp_counter++;
		data_to_be_displayed[0] =3Dline[0];
		char_extracted =3D fgets(buffer, 2, config_file);
				=09
		if(temp_counter=3D=3D1)
			line[0] =3D g_strdup (char_extracted);
		else
			line[0] =3D g_strdup_printf("%s%s", line[0], char_extracted);
	=09
			if (feof(config_file))
			break;
	=09
		if(!strcmp(char_extracted,"\n"))
		{				=09
			if(strcmp(line[0],"\n\n"))
				if(!cat_or_file)
				{=09
					n2 =3D gtk_ctree_insert_node (GTK_CTREE(ctree), NULL,=20
						NULL, data_to_be_displayed, 1, NULL, NULL, NULL, NULL, 1, 1);
					cat_or_file=3D1;
					temp_counter=3D0;
				}
				else
				{
					gtk_ctree_node_set_row_data (GTK_CTREE(ctree), n2,=20
						data_to_be_displayed[0]);
					/* If file doesn't exist, create it */
					if (!if_file_exists (data_to_be_displayed[0]))
					{
						temp=3Dfopen(data_to_be_displayed[0],"w");
						fclose(temp);
					}

					cat_or_file=3D0;			=09
				}
			else
				temp_counter =3D 0;

			line[0] =3D "";			=09
		}
	}=20

	fclose(config_file);


    //gtk_clist_thaw (GTK_CLIST(ctree));
    gtk_widget_show(ctree);

    gtk_clist_set_column_auto_resize (GTK_CLIST(clist1), 1, TRUE);
    gtk_clist_set_column_auto_resize (GTK_CLIST(clist1), 0, TRUE);
    gtk_clist_set_column_auto_resize (GTK_CLIST(clist1), 4, TRUE);


g_free(line);
}

void
GetFile (GtkWidget *button, gboolean CatSelected, gchar *filename, =
/*gint last_pos,*/ gpointer user_data)
{
/* I-LL PERHAPS HAVE TO MERGE THIS FUNCTION WITHIN THE FUNCTION WHICH
 * CALLS IT (PERHAPS THE on_Save_toolbar()). THIS WAY I-LL DO NOT HAVE A =
FUNCTION
 * LIKE THIS AS SUCH.*/

    GtkWidget *text1=3Dlookup_widget (GTK_WIDGET (button), "text1");
    GtkWidget *theclist=3Dlookup_widget(GTK_WIDGET(button),"clist1");
    FILE *fp;
    gchar buffer[BUFFER_SIZE];
    gint bytes_read;

//    if (CatSelected =3D=3D FALSE) return;

    gtk_editable_delete_text (GTK_EDITABLE (text1), 0, -1);
    gtk_clist_clear(GTK_CLIST(theclist));

    fp =3D fopen (filename, "r");
    if (fp =3D=3D NULL)
       {
         gtk_text_thaw (GTK_TEXT (text1));
         return;
       }

    for (;;)
       {
        bytes_read =3D fread (buffer, sizeof (gchar), BUFFER_SIZE, fp);

        if (bytes_read > 0)
	    gtk_text_insert (GTK_TEXT (text1), NULL, NULL, NULL, buffer,
			 bytes_read);

        if (bytes_read !=3D BUFFER_SIZE && (feof (fp) || ferror (fp)))
	    break;
       }

    if (ferror (fp))
    {
       fclose (fp);
       gtk_editable_delete_text (GTK_EDITABLE (text1), 0, -1);
       gtk_text_thaw (GTK_TEXT (text1));
       return;
    }

    fclose (fp);
    gtk_text_thaw (GTK_TEXT (text1));

    gtk_text_set_point(GTK_TEXT (text1),gtk_text_get_length(GTK_TEXT =
(text1)));
    //last_pos=3Dgtk_text_get_length(GTK_TEXT (text1));
}


void
Save_File (GtkWidget *button, GtkWidget *statusbar, gboolean =
CatSelected, gchar *filename, gpointer user_data)
{
    GtkWidget *text1=3Dlookup_widget (GTK_WIDGET (button), "text1");
    gchar *data=3D gtk_editable_get_chars (GTK_EDITABLE (text1), 0, -1);
    FILE *fp;
    gint bytes_written, len;


    //if (CatSelected =3D=3D FALSE) return;

    fp =3D fopen (filename, "w");
    if (fp =3D=3D NULL)
      {
         g_free (data);
         return;
      }

    len =3D strlen (data);
    bytes_written =3D fwrite (data, sizeof (gchar), len, fp);
    fclose (fp);

    g_free (data);
}


void=20
Open_File (GtkWidget *button, gboolean CatSelected, /*gint last_pos,*/
		   gchar *filename, gpointer user_data)
{
     gchar *variable,*a,*b,*variable2; // *variable3, *c;
     int loopvar,loopvary, loopvarz, counter1=3D0;
     GtkWidget *text1=3Dlookup_widget(GTK_WIDGET(button),"text1");
     guint cur_pos=3Dgtk_text_get_point(GTK_TEXT(text1));
     char *strings[5];
     GtkWidget *theclist=3Dlookup_widget(GTK_WIDGET(button),"clist1");

     if(CatSelected =3D=3D FALSE) return;

     /*GetFile (GTK_WIDGET(button), user_data);*/

GetFile (button, CatSelected, filename, /*last_pos,*/ NULL);

     cur_pos=3D0; gtk_text_set_point(GTK_TEXT(text1),0);

	 counter1=3DCount_Entries (text1);


    for(loopvarz=3D1;loopvarz<counter1+1;loopvarz++)
         {
          if (gtk_text_get_length(GTK_TEXT(text1))=3D=3D0) return;

          for (loopvary=3D0;loopvary<5;loopvary++)
             {
             cur_pos=3Dgtk_text_get_point(GTK_TEXT(text1));

             =
for(loopvar=3Dcur_pos;loopvar<gtk_text_get_length(GTK_TEXT(text1));loopva=
r++)
               {
                variable =3D =
gtk_editable_get_chars(GTK_EDITABLE(text1),loopvar,loopvar+1);
                a=3Dstrstr(variable,"\n");

                if (a=3D=3Dvariable)
                  {
                   =
strings[loopvary]=3Dgtk_editable_get_chars(GTK_EDITABLE(text1),cur_pos,lo=
opvar);
                   gtk_text_set_point(GTK_TEXT(text1),loopvar+1);
                   break;
                  }
=20
               }
            }


         gtk_clist_append(GTK_CLIST(theclist), strings);

         =
gtk_text_set_point(GTK_TEXT(text1),gtk_text_get_point(GTK_TEXT(text1))+1)=
;
         if =
(gtk_text_get_point(GTK_TEXT(text1))=3D=3Dgtk_text_get_length(GTK_TEXT(te=
xt1)))
             { gtk_text_set_point(GTK_TEXT(text1),0);  }
        }


    gtk_text_set_point(GTK_TEXT(text1),0);
}

gint Count_Entries (GtkWidget *text1)
{

    gint loopvar;
    gint counter1=3D0;
    gchar *b,*variable2;

	    =
for(loopvar=3D2;loopvar<gtk_text_get_length(GTK_TEXT(text1));loopvar++)
        {
         variable2 =3D =
gtk_editable_get_chars(GTK_EDITABLE(text1),loopvar-1,loopvar+1);
         b=3Dstrstr(variable2,"\n\n");

        if (b=3D=3Dvariable2)
           {
				counter1++;
           }
        }
	return counter1;

}


PrevEntry get_prev_entry (GtkWidget *text1, gint listrow)
{

	PrevEntry xyz;
	gint loopvar, counter1=3D0, pos_of_prev_entry=3D0, =
pos_of_prev_exit=3D0;
	gchar *b, *variable2;

	for(loopvar=3D2;loopvar<gtk_text_get_length(GTK_TEXT(text1));loopvar++)
        {
         variable2 =3D =
gtk_editable_get_chars(GTK_EDITABLE(text1),loopvar-1,loopvar+1);
         b=3Dstrstr(variable2,"\n\n");

        if (b=3D=3Dvariable2)
           {
           counter1++;
           if (counter1=3D=3Dlistrow)
              {
               pos_of_prev_entry=3Dloopvar+1;
              }
           if (counter1=3D=3Dlistrow+1)
              {
               pos_of_prev_exit=3Dloopvar+1;
              }
           }
        }
=09
	xyz.entry_pos =3D pos_of_prev_entry;
	xyz.exit_pos =3D pos_of_prev_exit;

	return xyz;

}


gboolean
if_file_exists (gchar *filename)
{
	FILE *file=3DNULL;

	file=3Dfopen(filename, "r");
=09
	if(file=3D=3DNULL)
		return FALSE;

	fclose(file);
	return TRUE;


}


void
gabook_message_box (const gchar *message)
{
  GtkWidget *dialog, *label, *button;

  dialog =3D gtk_dialog_new ();
  gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER);
  gtk_container_set_border_width (GTK_CONTAINER (dialog), 5);

  label =3D gtk_label_new (message);
  gtk_misc_set_padding (GTK_MISC (label), 20, 20);
  gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), label,
		      TRUE, TRUE, 0);
  gtk_widget_show (label);

  button =3D gtk_button_new_with_label ("OK");
  gtk_widget_set_usize (button, 80, -1);
  gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), =
button,
		      FALSE, FALSE, 14);
  GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
  gtk_widget_grab_default (button);
  gtk_widget_grab_focus (button);
  gtk_widget_show (button);

  gtk_signal_connect_object (GTK_OBJECT (button), "clicked",
			     GTK_SIGNAL_FUNC (gtk_widget_destroy),
			     GTK_OBJECT (dialog));
  gtk_widget_show (dialog);
}

------=_NextPart_000_000B_01C34026.349C4FA0--