Crazy Eddie's GUI Themes ?

Probleme beim Erstellen von 3D-Modellen und Texturen, keine Ahnung womit man Musik macht? Dies ist dein Forum.
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Crazy Eddie's GUI Themes ?

Beitrag von ccode_new »

Hallo Leute,
hat hier schonmal jemand ein anderes GUI Thema (Skin/Style) für die PureBasic-Windows3D-GUI (CEGUI) erstellt oder ein anderes Thema eingebunden ?

Wie muss/kann man das bewerkstelligen.

Einfach das Bild im GUI Ordner ummalen ist dabei keine echte Lösung.
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Crazy Eddie's GUI Themes ?

Beitrag von ccode_new »

Ich wollte nur mal sagen:

Ich nutze "SGX für PureBasic".

Mit einigen diversen Maus- und Design - Anpassungen rockt das unter Linux und Windows aber absolut!
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Benutzeravatar
#NULL
Beiträge: 2235
Registriert: 20.04.2006 09:50

Re: Crazy Eddie's GUI Themes ?

Beitrag von #NULL »

sgx author here.
Did you port it to Linux or are you using wine? Although there is very little Windows specific code, several PB bugs always kept me from using it on Linux.
my pb stuff..
Bild..jedenfalls war das mal so.
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Crazy Eddie's GUI Themes ?

Beitrag von ccode_new »

Hallo #NULL,

wir können auch Deutsch kommunizieren.

Ich nutze "sgx" unter Linux(gtk3) und unter Windows. (ohne Probleme)

Ich habe mir die ganzen Mouse-Lib Funktionen beseitigt.

Hinzugefügt:

Code: Alles auswählen

CompilerIf #PB_Compiler_OS = #PB_OS_Linux
  #GDK_BLANK_CURSOR = -2
  ImportC "-lgtk-3"
    gtk_widget_get_window(*Widget.GtkWidget)
    gdk_display_get_default()
    gdk_display_get_pointer(*display.GdkDisplay, *screen.GdkScreen, *x, *y, *mask)
  EndImport
CompilerEndIf

Procedure sgxHideNormalCursor(HideCursor.I = #True)
  Protected Cursor.I
 
  CompilerSelect #PB_Compiler_OS
    CompilerCase #PB_OS_Linux
      If HideCursor
        Cursor = gdk_cursor_new_(#GDK_BLANK_CURSOR)
      Else
        Cursor = 0
      EndIf
     
      gdk_window_set_cursor_(gtk_widget_get_window(WindowID(0)), Cursor)
    CompilerCase #PB_OS_MacOS
      If HideCursor
        CocoaMessage(0, 0, "NSCursor hide")
      Else
        CocoaMessage(0, 0, "NSCursor unhide")
      EndIf
    CompilerCase #PB_OS_Windows
      If HideCursor
        ShowCursor_(#False)
      Else
        ShowCursor_(#True)
      EndIf
  CompilerEndSelect
EndProcedure

Procedure.b ScreenMouseButton(Wnd, ButtonNr)
  Protected x, y, mask
  CompilerIf #PB_Compiler_OS = #PB_OS_Linux
    ;Linux Version
    If Wnd
      gdk_display_get_pointer(gdk_display_get_default(), #Null, @x, @y, @mask)
      Select ButtonNr
        Case 0
          If (mask & #GDK_BUTTON1_MASK)
            ProcedureReturn #True
          EndIf
        Case 1
          If (mask & #GDK_BUTTON3_MASK)
            ProcedureReturn #True
          EndIf
        Case 2
          If (mask & #GDK_BUTTON2_MASK)
            ProcedureReturn #True
          EndIf
      EndSelect
    EndIf
  CompilerElse
    ;Windows Version
    If Wnd ; (And GetForegroundWindow_() = Wnd)
      Select ButtonNr
        Case 0
          If GetAsyncKeyState_(#VK_LBUTTON) > 1
            ProcedureReturn #True
          EndIf
        Case 1
          If GetAsyncKeyState_(#VK_RBUTTON) > 1
            ProcedureReturn #True
          EndIf
        Case 2
          If GetAsyncKeyState_(#VK_MBUTTON) > 1
            ProcedureReturn #True
          EndIf
      EndSelect
    EndIf
  CompilerEndIf
  ProcedureReturn #False
EndProcedure

Procedure sgxExamine( window.i, fscreen=0, mousex=-1, mousey=-1 )
          Static id, id2, parent, temp
          Static topID
          Static group
          Static emsPrev
          Static i, x, y, w, h, dy, lines
          Static textposPrev
          Static *it.sgx_llS_elem ; use Protected when using recursion!
          Static ignore
          Static otherFocused
          Static mousexPrev
          Static mouseyPrev
          Static *animation.sgxS_Animation
          Static changeLater.sgxS_ListWrapper
          Static destroyed
          Static editWasFocused
          Static sizeOk, dw, dh
          
          emsPrev=sgx_ems
          If *sgx_emsContainer
            sgx_ems = *sgx_emsContainer\i
          Else
            sgx_ems = ElapsedMilliseconds()
          EndIf
          
          ; ############################################################################
          ; ############################################################################
          
          ;{ -- GET MOUSE DATA
          
          mousexPrev = sgx_m\x
          mouseyPrev = sgx_m\y
          
          If fscreen = 0
            If mousex=-1
              sgx_m\x  = WindowMouseX(window)
              ;sgx_m\dx = MouseDeltaX()
            Else
              sgx_m\x  = mousex
              sgx_m\dx = mousex - mousexPrev
            EndIf
            If mousey=-1
              sgx_m\y  = WindowMouseY(window)
              ;sgx_m\dy = MouseDeltaY()
            Else
              sgx_m\y  = mousey
              sgx_m\dy = mousey - mouseyPrev
            EndIf
          ElseIf fscreen = 1
            If mousex=-1
              sgx_m\x  = DesktopMouseX()
              ;sgx_m\dx = MouseDeltaX()
            Else
              sgx_m\x  = mousex
              sgx_m\dx = mousex - mousexPrev
            EndIf
            If mousey=-1
              sgx_m\y  = DesktopMouseY()
              ;sgx_m\dy = MouseDeltaY()
            Else
              sgx_m\y  = mousey
              sgx_m\dy = mousey - mouseyPrev
            EndIf
          EndIf
          
          ; (mouselib vs winapi)
          If 01
            ; use pb mouse lib for buttons and wheel
            ; problems:
            ; - mouse wheel may not work in windowed screen (http://www.purebasic.fr/english/viewtopic.php?f=4&t=65533)
            ; - mouse button may reset without actual button release (http://www.purebasic.fr/english/viewtopic.php?f=4&t=65799)
            
            If MouseWheel() >= 0
              sgx_m\wheelSign = 1
              sgx_m\wheel     = ScreenMouseButton(WindowID(window), 2)
            Else
              sgx_m\wheelSign = -1
              sgx_m\wheel     = ScreenMouseButton(WindowID(window), 2)
            EndIf
            sgx_m\leftdown_prev = sgx_m\leftdown
            sgx_m\rightdown_prev = sgx_m\rightdown
            
            sgx_m\leftdown = ScreenMouseButton(WindowID(window), 0)
            sgx_m\rightdown = ScreenMouseButton(WindowID(window), 1)
            
            sgx_m\leftclick = 0
            If sgx_m\leftdown And Not sgx_m\leftdown_prev
              sgx_m\leftclick = 1
            EndIf
            sgx_m\leftup = 0
            If sgx_m\leftdown_prev And Not sgx_m\leftdown
              sgx_m\leftup = 1
            EndIf
            sgx_m\rightclick = 0
            If sgx_m\rightdown And Not sgx_m\rightdown_prev
              sgx_m\rightclick = 1
            EndIf
            sgx_m\rightup = 0
            If sgx_m\rightdown_prev And Not sgx_m\rightdown
              sgx_m\rightup = 1
            EndIf
          Else
;.....

Und noch ein paar andere kleine Änderungen!

Du hast da etwas geniales programmiert, lieber #Null.
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Benutzeravatar
#NULL
Beiträge: 2235
Registriert: 20.04.2006 09:50

Re: Crazy Eddie's GUI Themes ?

Beitrag von #NULL »

wir können auch Deutsch kommunizieren.
Oops, Forum verwechselt.

Gut zu wissen :allright: Vielleicht integriere ich das mal irgendwann bzw. wage nochmal eine Portierung. Ist der MacOS CompilerIf-Zweig nur ein Copy/Paste Überbleibsel oder läuft das da auch? (Ich habe leider kein Mac/OSX)
my pb stuff..
Bild..jedenfalls war das mal so.
ccode_new
Beiträge: 1214
Registriert: 27.11.2016 18:13
Wohnort: Erzgebirge

Re: Crazy Eddie's GUI Themes ?

Beitrag von ccode_new »

#NULL hat geschrieben:st der MacOS CompilerIf-Zweig nur ein Copy/Paste Überbleibsel oder läuft das da auch? (Ich habe leider kein Mac/OSX)
Ist ein Überbleibsel !

Ich habe auch kein MacOS und kann es daher auch nicht für dieses Unix-Betriebssystem testen / bzw. anpassen.
Betriebssysteme: div. Windows, Linux, Unix - Systeme

no Keyboard, press any key
no mouse, you need a cat
Antworten