Re: geometry hints screwing up window sizes




I used some things from yours and now things work as I
intended, thanks!.

I suspect it was due to showing the window BEFORE the
hints/resize had been applied which was causing my
confusion..


--- David Neèas (Yeti) <yeti physics muni cz> wrote:

On Wed, Jun 27, 2007 at 05:03:48PM -0700, David J.
Andruczyk wrote:
I have an app that creates a window.  inside this
window is an eventbox and inside that is a
GtkFixed
(no slapping me for using a GtkFixed, it works
well
for this purpose)

I want to be a be able to scale the window to ANY
size. (yes i know the fixed widget doesn't handle
scaling, I plan on handling that once i can sort
out
the resizing problems)

I've used gtk_window_set_geometry_hints to set the
aspect ratio, and minimum size.  The problem is 
the
windows ALWAYS default displays at the minimum
size.
NOT at a size I specify using (gtk_window_resize)
or
similar.
If I do NOT set the minimum geometry hint. I CAN
set
the size to be larger than the Fixed widget (with
its
children).

All I want to be able to do is tell GTK/window
manager
 that there's a window that can be no smaller than
100x100 and no larger than 1000x1000, and I want
ot be
able ot set the size to any point in between those
extremes. (GTK ignores me, when using the hints)

any ideas?

Where exactly is the problem?  This works flawlessly
for me:


===========================================================
#include <gtk/gtk.h>
#include <gdk/gdkkeysyms.h>

static gboolean
key_press(GtkWidget *widget,
          GdkEventKey *event)
{
    if (event->keyval >= GDK_0 && event->keyval <=
GDK_9) {
        gint size = 60*(event->keyval - GDK_0 + 1);

        gtk_window_resize(GTK_WINDOW(widget), size,
size);
        return TRUE;
    }
    return FALSE;
}

int
main(int argc, char *argv[])
{
    GtkWidget *window, *fixed, *widget;
    GdkGeometry geometry = { 60, 60, 600, 600, 0, 0,
0, 0, 0.0, 0.0, 0 };
    gint i;

    gtk_init(&argc, &argv);
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

    fixed = gtk_fixed_new();
    gtk_container_add(GTK_CONTAINER(window), fixed);

    for (i = 0; i < 33; i++) {
        widget = gtk_label_new("Bloody");
        gtk_fixed_put(GTK_FIXED(fixed), widget,
                      g_random_int_range(0, 560),
g_random_int_range(0, 590));
    }

   
gtk_window_set_geometry_hints(GTK_WINDOW(window),
NULL, &geometry,
                                  GDK_HINT_MIN_SIZE
| GDK_HINT_MAX_SIZE);
    gtk_window_set_default_size(GTK_WINDOW(window),
300, 300);
    g_signal_connect(window, "destroy",
G_CALLBACK(gtk_main_quit), NULL);
    g_signal_connect(window, "key-press-event",
G_CALLBACK(key_press), NULL);

    g_print("Press 0-9 to resize me.\n");

    gtk_widget_show_all(window);
    gtk_main();

    return 0;
}

===========================================================

Yeti

--
http://gwyddion.net/
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list gnome org

http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list



-- David J. Andruczyk


      ____________________________________________________________________________________
Luggage? GPS? Comic books? 
Check out fitting gifts for grads at Yahoo! Search
http://search.yahoo.com/search?fr=oni_on_mail&p=graduation+gifts&cs=bz



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]