patrickh
Goto Top

Erstellung von Buttons mit FLTK

Hallo Leute,

Ich habe folgendes problem mit meinen bastelleien an einem FLTK-Programm...

Und zwar möchte ich von mir erstellte Buttons (bilder) benutzen..
Ich nehme zur zeit FL_Button und lade das Bild mit button->image(bild) rein, das klappt auch gut nur bleibt ein kleiner schönheitsfehler.

Sobald ich auf den button klicke wird so eine gepunktete linie um den button dargestellt der mir überhaupt nicht in den kram passt....


Gibt es eine möglichkeit den rahmen irgendwie unsichtbar zu machen????


Das ist mein Testprogramm:

int main(int argc, char **argv) {
Fl_Double_Window* w;
{ Fl_Double_Window* o = new Fl_Double_Window(800, 480);
w = o;
o->color(FL_LIGHT3);
{ Fl_Button* o = new Fl_Button(330, 220, 105, 105);
o->box(FL_NO_BOX);
o->image(image_abbrechen);
o->callback((Fl_Callback*)Abbrechen_CB);
} Fl_Button* o
{ Fl_Button* o = new Fl_Button(205, 220, 105, 105);
o->box(FL_NO_BOX);
o->image(image_ok);
o->callback((Fl_Callback*)OK_CB);
}
Fl_Button* o
{ Fl_Box* o = new Fl_Box(585, 78, 105, 105);
o->image(image_abbrechen);
o->callback((Fl_Callback*)Abbrechen_CB);
} Fl_Box* o
o->end();
}
Fl_Double_Window* o
w->show(argc, argv);
return Fl::run();
}

Content-Key: 125433

Url: https://administrator.de/contentid/125433

Printed on: April 18, 2024 at 12:04 o'clock

Member: mrtux
mrtux Sep 21, 2009 at 14:21:09 (UTC)
Goto Top
Hi !

Zitat von @PatrickH:
Sobald ich auf den button klicke wird so eine gepunktete linie um den
button dargestellt der mir überhaupt nicht in den kram passt....

Schon mal auf die Idee gekommen, dass die "gepunktete Linie" einen Sinn haben könnte? Sie zeigt an ob der Button den Fokus hat.

mrtux
Member: PatrickH
PatrickH Sep 21, 2009 at 15:16:29 (UTC)
Goto Top
Hi!

Klar weiß ich das die entwickler sich dabei eine ganze menge gedacht haben.
Nur hab ich halt runde bilder gemacht und da sieht das halt etwas komisch aus...

Der Fokus ist mir soweit ich den sinn verstanden hab auch egal.
Die Quittierung dass der Button gedrückt wurde mach ich über die bilder (da hab ich ein blauen rand für idle und einen roten für betätigt)
Member: mrtux
mrtux Sep 22, 2009 at 01:17:10 (UTC)
Goto Top
Hi !

Zitat von @PatrickH:
Der Fokus ist mir soweit ich den sinn verstanden hab auch egal.

Den Sinn verstanden hast Du nicht wirklich, der Fokus zeigt an, an welches Control auf dem Canvas eine Tastatureingabe geht und wird benötigt damit eine Applikation auch über die Tastatur bedienbar ist. Du wirst diese Eigenschaft wohl überschreiben müssen, da sie normalerweise geerbt ist.

mrtux
Member: PatrickH
PatrickH Sep 22, 2009 at 14:26:22 (UTC)
Goto Top
OK, jetzt tut das programm was ich will...

nur kurz zur erklärung:
Ich benutze ausschließlich einen touch und brauche somit keinen fokus da ich keine tastatur habe.

Die rahmen habe ich in der "Fl_Button.cxx" auskommentiert ("if (Fl::focus() == this) draw_focus();" unter "void Fl_Button::draw()").

So, jetzt hab ich ein etwas anderes problem das ich noch nicht auf die reihe bekomme:

Mit "Fl_JPEG_Image *image = new Fl_JPEG_Image("bild.jpg");" lade ich mein "bild" in "image" und kann das nun in einer box mit "image(image)" anzeigen lassen... gut und funktioniert auch...

nur... wie schaffe ich es das jpeg neu zu laden?? bzw. ich will "image(image)" weiterhin benutzen und nur ein neues jpeg laden..

hört sich etwas konfus an aber ich hoffe ihr versteht was ich meine face-wink

Patrick