Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
NTUI: Systemkonforme Bilder integrieren
#1
systemkonforme bilder kannst einfach so zeichnen. slider, scroller, buttons geht damit auch in OS4 und MOS unterstützt 4 5 und 6 aber nicht. da musste dann wie bei wizard auch per env var(wizardstyle) umschaltbar machen. z.b hier code aus dem stormwizard, den ich dafür gemacht habe. Du brauchst nur 1 Objekt erzeugen, die Werte kannst du dann jedesmal kurz vor dem zeichnen passend einstellen mit setattr

backgroundframe = (struct Image *) NewObject(NULL,"frameiclass",TAG_END);

und wenn du das Bild des GUI Objekts zeichnen musst, dann kommt der Code zum einsatz. Es gibt dann die diversen Bilder, je nach skin wird dann das passende gezeichnet. AFA nutzt auch die Werte von dem OS4. FRAME_RIDGE ist für die stringgadgets. propborder ist das prop hintergrundbild und propknob eben das Knopfbild. blackbird hats getestet, geht auch auf OS4

#define FRAME_DEFAULT 0
#define FRAME_BUTTON 1
#define FRAME_RIDGE 2
#define FRAME_ICONDROPBOX 3
#define FRAME_PROPBORDER 4 //OS4 Tag
#define FRAME_PROPKNOB 5 //OS4 Tag
#define FRAME_DISPLAYBOX 6 //OS4 Tag

if (wizardstyle == 1)
{type = 1;recessed = 1;}
else
{type =4;recessed =0;}

SetAttrs(parentdata->FrameObject,
IA_FrameType,type,
IA_Recessed,recessed, IA_EdgesOnly,0,
IA_Left,left,
IA_Top,top,
IA_Width,parentdata->layoutdata.Bounds.Width,
IA_Height,parentdata->layoutdata.Bounds.Height,
IA_Orientation,knob_orientation,
TAG_END);
DrawImageState(RPort,parentdata->FrameObject,0,0,IDS_NORMAL,DrInfo);
Zitieren
#2
Und wie lade so ein Bild?

Das zeichnen ist ansich nicht so das Problem. Es geht eher darum wie man es konzeptionell macht und dass alle Widgets das unterstützen. Ich weis zwar schon wie ich das machen kann, aber es fehlt die Zeit. Der einfache Buttons ist zum Test skinnbar. Allerdings fehlen noch andere Features die wichtiger sind, z.B. das Layout speichern.
Zitieren
#3
layout speichern isr natürlich wichtiger.

laden musst du keine Bilder. Es wird immer das passende des skins gezeichnet, welches der User in prefs eingestellt hat. das Bild wird ausgewählt per z.b

IA_FrameType,FRAME_PROPBORDER

dass wählt dann den Proportional Gadget Hintergrund an.

IA_Orientation,knob_orientation,

0 oder 1 dann ob es horizontal oder vertikaler Knopf ist. Bei button Hintergründen wird es nicht gebraucht

SetAttrs(parentdata->FrameObject,
IA_FrameType,type,
IA_Recessed,recessed, IA_EdgesOnly,0,
IA_Left,left,
IA_Top,top,
IA_Width,parentdata->layoutdata.Bounds.Width,
IA_Height,parentdata->layoutdata.Bounds.Height,
IA_Orientation,knob_orientation,
TAG_END);
Zitieren
#4
Hallo,
aus gegebenen Anlass habe ich diese Kommentare damit sie nicht verloren gehen in diesen neuen Thread verschoben.
Sie hatten einfach nichts mehr mit dem eigentlichen Thema zu tun.

Ich bitte darum dieses interessante Thema hier weiter zu diskutieren wenn Bedarf ist.

danke
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste