Seite 1 von 4

Screen gadgets - eine Userlib

Verfasst: 02.11.2005 16:47
von Dostej
Ich bin gerade dabei, einfache Gadgets für Screens zu machen.
Herausgekommen ist, nach einigen Hilfestellungen bezüglich tailbite, eine Lib. Der Lib liegt der Sourcecode (LGPL) bei.


Ich habe versucht, möglichst nahe an den PB-gadget Befehlen zu bleiben. Es gehen nicht alle gadgets (habe ich auch nicht vor) aber immerhin:
  • Text
    String
    Button
    Checkbox
    Option
    Trackbar
    Listicon
    ScrollBar
    Image
    Imagebutton
    Frame3D
Folgende Befehle sind drin

Code: Alles auswählen

SG_AddGadgetColumn
SG_AddGadgetItem
SG_ButtonGadget
SG_ButtonImageGadget
SG_CheckBoxGadget
SG_ClearGadgetItemList
SG_CountGadgetItems
SG_DisableGadget
SG_DrawAllGadgets
SG_EventScreenGadgetID
SG_EventType
SG_Frame3DGadget
SG_FreeAllGadgets
SG_FreeGadget
SG_GadgetID
SG_GadgetWidth
SG_GadgetX
SG_GadgetY
SG_GetFocusGadget
SG_GetGadgetFlag
SG_GetGadgetFont
SG_GetGadgetItemState
SG_GetGadgetItemText
SG_GetGadgetState
SG_GetGadgetText
SG_HideGadget
SG_ImageGadget
SG_IsGadget
SG_ListIconGadget
SG_OptionGadget
SG_RemoveGadgetItem
SG_ResizeGadget
SG_ScreenGadgetEvent
SG_ScrollBarGadget
SG_SetBackground
SG_SetBackgroundColor
SG_SetBackgroundImage
SG_SetColor
SG_SetFocusGadget
SG_SetGadgetBackground
SG_SetGadgetBackgroundColor
SG_SetGadgetBackgroundImage
SG_SetGadgetColor
SG_SetGadgetFlag
SG_SetGadgetFont
SG_SetGadgetItemState
SG_SetGadgetItemText
SG_SetGadgetState
SG_SetGadgetText
SG_StringGadget
SG_TextGadget
SG_TrackBarGadget
Das Ganze ist so weit wie möglich PB-Orientiert, also event-gestuert.
Dazu sind folgende Konstanten definiert
  • #SG_EventType_MouseOverGadget ; Mouse over the gadget
    #SG_EventType_LeftClick ; Klick mit der linken Maustaste
    #SG_EventType_RightClick ; Klick mit der rechten Maustaste
    #SG_EventType_LeftDoubleClick ; Doppelklick mit der linken Maustaste
    #SG_EventType_RightDoubleClick ; Doppelklick mit der rechten
    Maustaste
    #SG_EventType_Wheel
Hier ist die letzte Version, mit ner verbesserten Hilfe (und dank ts-softs Hilfe mit ner Lib...).
http://dostej.pureforge.net/Files/Scree ... ts_0.6.zip


Über Kommentare, Vorschläge und Fehler-Mitteilungen wäre ich dankbar.


//EDIT: Neuster Stand (24.11.05)

Verfasst: 02.11.2005 16:55
von KeyKon
Sieht doch ganz nett aus aber ich fände es besser wenn du sachen wie SG_SetFokusGadget(SG_GadgetID_L) mit "c" statt mit "k" schreibst, das sieht irgendwie komisch aus und verwirrt in bezug auf die Window-Befehle.

KeyKon

Verfasst: 02.11.2005 17:02
von Dostej
Stimmt. Ist eine meiner selstsamen Deutsch-Englischen Wortpaarungen
Habs geändert. Danke

Verfasst: 02.11.2005 17:03
von KeyKon
Passiert mir auch andauernd...

KeyKon

Verfasst: 02.11.2005 17:08
von Mischa
Gar nicht schlecht. Guter Ansatz. :allright:

Aber achte mal auf die Button-Einschläge. Ist Dauerfeuer.
Du mußt ein Mousekey-UP abwarten.

Die Scrollbars und Trackbars verhalten sich auch noch
nicht ganz realistisch.

Vergleich das nochmal ganz genau mit 'normalen' Gadgets.
Aber Du machst das schon.


Gruß,
Mischa

Verfasst: 02.11.2005 17:15
von Dostej
Aber achte mal auf die Button-Einschläge. Ist Dauerfeuer.
Du mußt ein Mousekey-UP abwarten.
Jep. steht auf der Todo liste...
Die Scrollbars und Trackbars verhalten sich auch noch
nicht ganz realistisch.
Ha ich auch bemerkt. Die Slidermitte zu erwischen und merken ist etwas aufwändiger. Daher hab ichs fürs erste mal so (einfach) gemacht. Das ist dann was für die Feinarbeit
Vergleich das nochmal ganz genau mit 'normalen' Gadgets.
Aber Du machst das schon.
Bin dabei. Danke fürs Feedback.
(Was Du ncht gesagt hast, aber aus den Fehlermeldungen zu lesen ist, das es so grundsätzlich mal bei dir läuft. Das ist auch interessant für mich...)

Verfasst: 02.11.2005 18:38
von PMV
*beleidigt is*
/:->

^^an so was bin ich seit öhm nun 2 - 3 Monaten ... mehr oder weniger, je nach dem wie viel ich in Foren bin bzw spiele :lol: ...

Gut das ich meine wenigstens von "Screen Gadget Library" nun umbenannt hab :freak: ... da es inzwischen auch wenn alles gut geht für "normale" Fenster funzen könnte :mrgreen:

Naja dann werd ich wohl mal ne kurze Pause machen und mir dein Werk anschauen.

Aja, nen klicklink wäre schön ... text kopieren bin ich eigentlich zu faul für :wink:
^^meld mich gleich wieder :D

Edit1: Du solltest noch erwähnen, das die Userlib "X2D" benötigt wird :D
Edit2: So, ma kurz angeschaut: also aussehen ist schon nicht schlecht, das einfache alte Windowsausehen halt ... naja so änlich, kann man nicht mekern :wink: . Das mit dem Track- und Scrollbar wurd ja schon angegeben ... und die Mausauch, öhm dann wäre da noch, das wenn man z.B. auf einen Button drückt, hier erst reagiert wird, wenn die Maustaste wieder los gelassen wird (ist bei Windows auch :D )

MFG PMV

Verfasst: 03.11.2005 09:15
von Dostej
^^an so was bin ich seit öhm nun 2 - 3 Monaten ... mehr oder weniger, je nach dem wie viel ich in Foren bin bzw spiele ...
:) Ich möchte dich nicht frustrieren, aber das ist das Ergebnis von 2 tagen. (Der Ehre halber muss ich aber sagen, ich habe so was schon mal in ner anderen Sprache versucht und deutlich länger als 3 Monate gebraucht und was rauskam war Schrott... :lol: )

Also, hier ist die zweite Auflage der lib (ich hoffe der Link geht jetzt, evtl lag es an den leerzeichen dazwischen)
http://dostej.pureforge.net/Files/Scree ... IB_0.2.zip

Ich denke ich habe alle bisherigen Punkte behoben. Mausklick nur 1x, das Verhalten der Trackbar und Scrollbar gadgets sollte ziemlich PB-ähnlich sein.
Das Listicon gadget kann nun Elemente aufnehmen (max 500) und man kann (nur vertikal) scrollen und Einträge markieren.

Trackbar geht nun auch vertikal

Ich habe es geschafft, mit dem PureHelp ne Hilfe zusammenzubasteln und die Funktionen etwas besser zu kommentieren.
Habe ein paar Funktionen hinzugefügt und 2 (...itemattribute), die nicht für die gadgets nötig waren gelöscht.

Die Anzeige sollte auch mit dem Hintergrund (also transparent) oder mit einem Bild möglich sein, habe ich aber noch nicht getestet. (Kommt am WE)

Zur X2d: Ich brauchte "Fontheight", da ich das aber nicht hinbekommen habe (der Link in der Forensuche, wie man das lösen kann, ging nicht), habe ich es damit gemacht.
Wenn mir jemand einen Tipp geben kann, wie ich das anders machen kann, bitte her damit. Ich möchte beim Final ungern auf ne andere Lib zugreifen müssen.

Verfasst: 03.11.2005 11:29
von Hroudtwolf
Der Name ScreenGadget Library ist bereits belegt ;-)
Und das Ding ist auch schon seit fast nem halben Jahr publik.

Verfasst: 03.11.2005 11:54
von Dostej
Habe das mal gesehen. Da der Autor mir nicht bekannt war und er seinen Code nicht offenlegen wollte, war mir das Risiko, das er aussteigt und ich mit der Lib was gemacht habe, und dann das ganze wieder umschreiben muss, zu gross. Daher habe ich ne eigene gemacht.

Kannst Du mir sagen, wo ich die finden kann? Keine Ahnung wo das war.

Meine heisst einfach Screen Gadgets. Hoffe das ist ok so.