Counting pixels ??

Just starting out? Need help? Post your questions and find answers here.
User avatar
mk-soft
Always Here
Always Here
Posts: 6313
Joined: Fri May 12, 2006 6:51 pm
Location: Germany

Re: Counting pixels ??

Post by mk-soft »

For beginning ...

Code: Select all

;-TOP

#ProgramTitle = "Main Window"
#Version = "v1.01.1"

Enumeration Windows
  #Main
EndEnumeration

Enumeration Menus
  #MainMenu
EndEnumeration

Enumeration MenuItems
  #MainMenuExitApplication
  #MainButtonMenuEdit
  #MainButtonMenuCopy
  #MainButtonMenuMove
  #MainButtonMenuMkDir
  #MainButtonMenuDelete

EndEnumeration

Enumeration Gadgets
  #MainEdit
  #MainContainer
  #MainButtonEdit
  #MainButtonCopy
  #MainButtonMove
  #MainButtonMkDir
  #MainButtonDelete
EndEnumeration

Enumeration Status
  #MainStatusBar
EndEnumeration

Global ExitApplication

; ----

Procedure UpdateWindow()
  Protected dx, dy
  dx = WindowWidth(#Main)
  dy = WindowHeight(#Main) - StatusBarHeight(#MainStatusBar) - MenuHeight()
  ; Resize gadgets
  ResizeGadget(#MainEdit, 0, 0, dx, dy - 30)
  ResizeGadget(#MainContainer, 0, dy - 30, dx, 30)
EndProcedure

; ----

Procedure Main()
  Protected x, y, dx, dy

  #MainStyle = #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_MaximizeGadget | #PB_Window_MinimizeGadget
  
  If OpenWindow(#Main, #PB_Ignore, #PB_Ignore, 800, 600, #ProgramTitle , #MainStyle)
    ; Menu
    CreateMenu(#MainMenu, WindowID(#Main))
    MenuTitle("File")
    MenuItem(#MainMenuExitApplication, "E&xit")
    ; StatusBar  
    CreateStatusBar(#MainStatusBar, WindowID(#Main))
    AddStatusBarField(#PB_Ignore)
    StatusBarText(#MainStatusBar, 0, " " + #Version)
    ; Gadgets
    dx = WindowWidth(#Main)
    dy = WindowHeight(#Main) - StatusBarHeight(#MainStatusBar) - MenuHeight()
    
    EditorGadget(#MainEdit, 0, 0, dx, dy - 30)
    ContainerGadget(#MainContainer, 0, dy - 30, dx, 30, #PB_Container_Single)
    ButtonGadget(#MainButtonEdit, 2, 2, 100, 26, "F4-Edit")
    ButtonGadget(#MainButtonCopy, 104, 2, 100, 26, "F5-Copy")
    ButtonGadget(#MainButtonMove, 208, 2, 100, 26, "F6-Move")
    ButtonGadget(#MainButtonMkDir, 312, 2, 100, 26, "F7-Mkdir")
    ButtonGadget(#MainButtonDelete, 416, 2, 100, 26, "F8-Delete")
    CloseGadgetList()
    
    SetGadgetColor(#MainEdit, #PB_Gadget_FrontColor, #Blue)
    SetGadgetColor(#MainEdit, #PB_Gadget_BackColor, $E6E0B0)
    
    ; Shortcuts
    AddKeyboardShortcut(#Main, #PB_Shortcut_F4, #MainButtonMenuEdit)
    ;TODO
    
    ; Bind events
    BindEvent(#PB_Event_SizeWindow, @UpdateWindow(), #Main)
    
    ; Main loop
    Repeat
      Select WaitWindowEvent()
        Case #PB_Event_CloseWindow
          ExitApplication = #True
          
        Case #PB_Event_Menu
          Select EventMenu()
            Case #MainMenuExitApplication
              ExitApplication = #True
              
            Case #MainButtonMenuEdit
              PostEvent(#PB_Event_Gadget, #Main, #MainButtonEdit, #PB_EventType_LeftClick)
              
            ;TODO
              
          EndSelect
          
        Case #PB_Event_Gadget
          Select EventGadget()
            Case #MainButtonEdit
              Debug "Edit"
              
            ;TODO
              
          EndSelect
          
      EndSelect
      
    Until ExitApplication
    
  EndIf
  
EndProcedure : Main()
My Projects ThreadToGUI / OOP-BaseClass / EventDesigner V3
PB v3.30 / v5.75 - OS Mac Mini OSX 10.xx - VM Window Pro / Linux Ubuntu
Downloads on my Webspace / OneDrive
RogerTunnicliffe
User
User
Posts: 18
Joined: Fri Oct 17, 2025 10:10 pm

Re: Counting pixels ??

Post by RogerTunnicliffe »

infratec wrote: Thu Oct 23, 2025 8:37 am Your EditorGadget coordinates are far away from visible, so you can not see and do anything.
The Gadget is inside of the container, which is 23 pixel high, but you place the Editor Gadget at WindowHeight() - 28
Yeah, your right. I've changed the code so many times now trying to get it right that I'm confusing myself. Just cutting and pasting from a previous attempt into the next attempt. I' ll take another look tomorrow. Thx
Post Reply