What you need to do is this:

One file that uses the mainwindow variable, the one that initializes it,
usually, needs the actual variable.  So:

gtk_main.c (or whatever):
  GtkWidget *mainwindow;

  int main() {
    ...
  }

gtk_secondary.c (or whatever):
  extern GtkWidget *mainwindow;

  int doSomething() {
    ...
  }


Notice that the variable is only actually declared once.  The other files
are just informed that there is an *external* variable of that type with
that name.  That way they can use the variable without redeclaring it
(Which is against the rules).

However, I think GTK is probably not the best place to be learning C.  GTK
is rather advanced C, lots of pointers and enums and whatnot... I'd
recommend starting out a little slower, and looking at GTK once you're
more comfortable with the language.  But whatever works :)

Good luck!

- Nate

> I'm building an application in C that uses GTK. The reason i'm doing this
> is
> to learn GTK (and C as well) the main problem I've found is that i write
> all
> the GTK code in only one file and is getting too da## big, so i tried to
> divide the GTK code in different files, but it seems i'm do not understand
> C
> that good. This is what i did:
>
> global.c
>                                                GtkWidget *mainWindow
>
> gtkarch1.c           gtkarch2.c          gtkarch3.c           gtkarch4.c
> /* Al this files uses the mainWindow variable, this is what i do:
> gtkarchX.c
>       #include global.c
>       GtkWidget *mainWindow */
>
> ant then the main.c file which looks like this:
>
> main.c
> #include "gtkarch1.c"
> #include "gtkarch2.c"
> #include "gtkarch3.c"
>
> But the compiler gives me an error, which I understand but i don't know
> how
> to solve it, that says that i'm redefining the variables declared in
> global.c in each gtkarchX.c
>
> So............ Help? please?
> _______________________________________________
> gtk-app-devel-list mailing list
> gtk-app-devel-list@gnome.org
> http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
>


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

Reply via email to