Seite 1 von 1

ButtonGadgetEx - Images als Button

Verfasst: 25.11.2011 21:07
von Lambda
guten abend :)

habe noch nie was mit dem CanvasGadget gemacht und wollte eine alternative für ein button durch ein ImageGadget. sollte sich wie ein windows button verhalten.

nichts besonderes aber hier mal der code^^


edit: jetzt auch als toggle button.. ein image im deaktivierten zustand braucht man auch nicht

Code: Alles auswählen

EnableExplicit

UsePNGImageDecoder()
CatchImage(0, ?ImageButton0, 848)
CatchImage(1, ?ImageButton1, 865)
CatchImage(2, ?ImageButton2, 889)

Structure gadgetex
  Pressed.i
  Disabled.i
  
  toggle.i
  toggled.i
  
  ImageNormal.i
  ImageOver.i
  ImagePressed.i
  
  FACE.l
EndStructure

Enumeration
  #ButtonGadgetEx_Entered
  #ButtonGadgetEx_Released
  #ButtonGadgetEx_Pressed
EndEnumeration

Procedure GrayscaleCallback(x, y, TopColor, BottomColor)
  Define Gray.i
  Gray = Red(TopColor)*0.56+Green(TopColor)*0.33+Blue(TopColor)*0.11+Alpha(BottomColor)
  ProcedureReturn Gray<<16+Gray<<8+Gray<<24+Gray
EndProcedure
Procedure EventGadgetEx(GadgetID)
  Protected *GadgetEx.gadgetex = GetGadgetData(GadgetID)
  
  If *GadgetEx\Disabled=#False
    If EventType() = #PB_EventType_MouseEnter
      If *GadgetEx\toggle=#True And *GadgetEx\toggled=#False
        StartDrawing(CanvasOutput(GadgetID))
          Box(0, 0, GadgetWidth(GadgetID), GadgetHeight(GadgetID), *GadgetEx\FACE)
          DrawingMode(#PB_2DDrawing_AlphaBlend)
          DrawImage(ImageID(*GadgetEx\ImageOver), 0, 0)
          DrawImage(ImageID(*GadgetEx\ImageOver), 0, 0)
        StopDrawing()
      ElseIf *GadgetEx\toggle=#False
        StartDrawing(CanvasOutput(GadgetID))
          Box(0, 0, GadgetWidth(GadgetID), GadgetHeight(GadgetID), *GadgetEx\FACE)
          DrawingMode(#PB_2DDrawing_AlphaBlend)
          DrawImage(ImageID(*GadgetEx\ImageOver), 0, 0)
          DrawImage(ImageID(*GadgetEx\ImageOver), 0, 0)
        StopDrawing()
      EndIf
      ProcedureReturn #ButtonGadgetEx_Entered
    ElseIf EventType() = #PB_EventType_MouseLeave
      If *GadgetEx\toggle=#True And *GadgetEx\toggled=#False
        StartDrawing(CanvasOutput(GadgetID))
          Box(0, 0, GadgetWidth(GadgetID), GadgetHeight(GadgetID), *GadgetEx\FACE)
          DrawingMode(#PB_2DDrawing_AlphaBlend)
          DrawImage(ImageID(*GadgetEx\ImageNormal), 0, 0)
          DrawImage(ImageID(*GadgetEx\ImageNormal), 0, 0)
        StopDrawing()
      ElseIf *GadgetEx\toggle=#False
        StartDrawing(CanvasOutput(GadgetID))
          Box(0, 0, GadgetWidth(GadgetID), GadgetHeight(GadgetID), *GadgetEx\FACE)
          DrawingMode(#PB_2DDrawing_AlphaBlend)
          DrawImage(ImageID(*GadgetEx\ImageNormal), 0, 0)
          DrawImage(ImageID(*GadgetEx\ImageNormal), 0, 0)
        StopDrawing()
      EndIf
      ProcedureReturn #ButtonGadgetEx_Released
    ElseIf EventType() = #PB_EventType_LeftButtonDown
      *GadgetEx\Pressed=#True
      StartDrawing(CanvasOutput(GadgetID))
        Box(0, 0, GadgetWidth(GadgetID), GadgetHeight(GadgetID), *GadgetEx\FACE)
        DrawingMode(#PB_2DDrawing_AlphaBlend)
        DrawImage(ImageID(*GadgetEx\ImagePressed), 0, 0)
      StopDrawing()
      ProcedureReturn -1
    ElseIf EventType() = #PB_EventType_LeftButtonUp
      *GadgetEx\Pressed=#False
      
      ; If *GadgetEx\toggle=#False
      StartDrawing(CanvasOutput(GadgetID))
        Box(0, 0, GadgetWidth(GadgetID), GadgetHeight(GadgetID), *GadgetEx\FACE)
        DrawingMode(#PB_2DDrawing_AlphaBlend)
        DrawImage(ImageID(*GadgetEx\ImageNormal), 0, 0)
      StopDrawing()
      
      ;EndIf
      
      If  GetGadgetAttribute(GadgetID, #PB_Canvas_MouseX)>0 And GetGadgetAttribute(GadgetID, #PB_Canvas_MouseY)>0 And GetGadgetAttribute(GadgetID, #PB_Canvas_MouseX)<GadgetWidth(GadgetID) And GetGadgetAttribute(GadgetID, #PB_Canvas_MouseY)< GadgetHeight(GadgetID)
        
        If *GadgetEx\toggle=#True
          *GadgetEx\toggled!1
        EndIf
        
        If *GadgetEx\toggle=#True And *GadgetEx\toggled=#True
          StartDrawing(CanvasOutput(GadgetID))
            Box(0, 0, GadgetWidth(GadgetID), GadgetHeight(GadgetID), *GadgetEx\FACE)
            DrawingMode(#PB_2DDrawing_AlphaBlend)
            DrawImage(ImageID(*GadgetEx\ImagePressed), 0, 0)
          StopDrawing()
        Else
          StartDrawing(CanvasOutput(GadgetID))
            Box(0, 0, GadgetWidth(GadgetID), GadgetHeight(GadgetID), *GadgetEx\FACE)
            DrawingMode(#PB_2DDrawing_AlphaBlend)
            DrawImage(ImageID(*GadgetEx\ImageOver), 0, 0)
          StopDrawing()
        EndIf
        ProcedureReturn #ButtonGadgetEx_Pressed
      EndIf
    ElseIf EventType() = #PB_EventType_MouseMove
      If GetGadgetAttribute(GadgetID, #PB_Canvas_MouseX)<0 Or GetGadgetAttribute(GadgetID, #PB_Canvas_MouseY)<0 Or GetGadgetAttribute(GadgetID, #PB_Canvas_MouseX)>GadgetWidth(GadgetID) Or GetGadgetAttribute(GadgetID, #PB_Canvas_MouseY)> GadgetHeight(GadgetID) Or *GadgetEx\Pressed=#False
        
        If *GadgetEx\Pressed=#True
          If *GadgetEx\toggle=#True And *GadgetEx\toggled=#True
            StartDrawing(CanvasOutput(GadgetID))
              Box(0, 0, GadgetWidth(GadgetID), GadgetHeight(GadgetID), *GadgetEx\FACE)
              DrawingMode(#PB_2DDrawing_AlphaBlend)
              DrawImage(ImageID(*GadgetEx\ImagePressed), 0, 0)
            StopDrawing()
          Else
            StartDrawing(CanvasOutput(GadgetID))
              Box(0, 0, GadgetWidth(GadgetID), GadgetHeight(GadgetID), *GadgetEx\FACE)
              DrawingMode(#PB_2DDrawing_AlphaBlend)
              DrawImage(ImageID(*GadgetEx\ImageNormal), 0, 0)
            StopDrawing()
          EndIf
          ProcedureReturn #ButtonGadgetEx_Released
        EndIf
      Else
        StartDrawing(CanvasOutput(GadgetID))
          Box(0, 0, GadgetWidth(GadgetID), GadgetHeight(GadgetID), *GadgetEx\FACE)
          DrawingMode(#PB_2DDrawing_AlphaBlend)
          DrawImage(ImageID(*GadgetEx\ImagePressed), 0, 0)
        StopDrawing()
      EndIf
    EndIf
  EndIf
  
EndProcedure
Procedure GadgetToggleEx(GadgetID, state)
  Protected *GadgetEx.gadgetex = GetGadgetData(GadgetID)
  *GadgetEx\toggle = state
EndProcedure
Procedure GetGadgetStateEx(GadgetID)
  Protected *GadgetEx.gadgetex = GetGadgetData(GadgetID)
  ProcedureReturn *GadgetEx\toggled
EndProcedure
Procedure SetGadgetStateEx(GadgetID, state)
  Protected *GadgetEx.gadgetex = GetGadgetData(GadgetID)
  *GadgetEx\toggled = state
  
  If state=#True
    StartDrawing(CanvasOutput(GadgetID))
      Box(0, 0, GadgetWidth(GadgetID), GadgetHeight(GadgetID), *GadgetEx\FACE)
      DrawingMode(#PB_2DDrawing_AlphaBlend)
      DrawImage(ImageID(*GadgetEx\ImagePressed), 0, 0)
    StopDrawing()
  Else
    StartDrawing(CanvasOutput(GadgetID))
      Box(0, 0, GadgetWidth(GadgetID), GadgetHeight(GadgetID), *GadgetEx\FACE)
      DrawingMode(#PB_2DDrawing_AlphaBlend)
      DrawImage(ImageID(*GadgetEx\ImageNormal), 0, 0)
    StopDrawing()
  EndIf
EndProcedure
Procedure DisableGadgetEx(GadgetID, state)
  
  Protected *GadgetEx.gadgetex = GetGadgetData(GadgetID)
  
  DisableGadget(GadgetID, state)
  If state=#True
    StartDrawing(CanvasOutput(GadgetID))
      Box(0, 0, GadgetWidth(GadgetID), GadgetHeight(GadgetID), *GadgetEx\FACE)
      DrawingMode(#PB_2DDrawing_AlphaBlend|#PB_2DDrawing_CustomFilter)
      CustomFilterCallback(@GrayscaleCallback())
      If *GadgetEx\toggled=#True
        DrawImage(ImageID(*GadgetEx\ImagePressed), 0, 0)
      Else
        DrawImage(ImageID(*GadgetEx\ImageNormal), 0, 0)
      EndIf
    StopDrawing()
  Else
    StartDrawing(CanvasOutput(GadgetID))
      Box(0, 0, GadgetWidth(GadgetID), GadgetHeight(GadgetID), *GadgetEx\FACE)
      DrawingMode(#PB_2DDrawing_AlphaBlend)
      If *GadgetEx\toggled=#True
        DrawImage(ImageID(*GadgetEx\ImagePressed), 0, 0)
      Else
        DrawImage(ImageID(*GadgetEx\ImageNormal), 0, 0)
      EndIf
    StopDrawing()
  EndIf
EndProcedure

Procedure ButtonGadgetEx(GadgetID, x, y, Width, Height, ImageNormal, ImageOver, ImagePressed, color)
  
  CanvasGadget(GadgetID, x, y, Width, Height)
  Protected *GadgetEx.gadgetex = AllocateMemory(SizeOf(gadgetex))
  SetGadgetData(GadgetID,*GadgetEx)
  
  *GadgetEx\ImageNormal = ImageNormal
  *GadgetEx\ImageOver = ImageOver
  *GadgetEx\ImagePressed = ImagePressed
  
  *GadgetEx\FACE = color
  
  StartDrawing(CanvasOutput(GadgetID))
    Box(0, 0, GadgetWidth(GadgetID), GadgetHeight(GadgetID), *GadgetEx\FACE)
    DrawingMode(#PB_2DDrawing_AlphaBlend)
    DrawImage(ImageID(ImageNormal), 0, 0)
  StopDrawing()
EndProcedure



OpenWindow(0, 0, 0, 250, 120, "ButtonGadgetEx", #PB_Window_ScreenCentered|#PB_Window_SystemMenu|#PB_Window_TitleBar)
UseGadgetList(WindowID(0))
ButtonGadgetEx(0, 20, 10, 26, 17, 0, 1, 2, GetSysColor_(#COLOR_3DFACE))
ButtonGadget(1, 10, 40, 100, 20, "Disable", #PB_Button_Toggle)
ButtonGadget(2, 10, 65, 100, 20, "Toggle", #PB_Button_Toggle)

CreateStatusBar(0, WindowID(0))
AddStatusBarField(100)


Repeat
  Select WaitWindowEvent()
    Case #PB_Event_CloseWindow
      End
      
    Case #PB_Event_Gadget
      Select EventGadget()
        Case 0
          Select EventGadgetEx(0)
            Case #ButtonGadgetEx_Entered
              If GetGadgetStateEx(0)=0
                SetWindowTitle(0, "ButtonGadgetEx - Over ")
              Else
                SetWindowTitle(0, "ButtonGadgetEx - Over/Toggled")
              EndIf
              
            Case #ButtonGadgetEx_Released
              StatusBarText(0, 0, "")
              SetWindowTitle(0, "ButtonGadgetEx")
            Case #ButtonGadgetEx_Pressed
              StatusBarText(0, 0, "Pressed")
          EndSelect
        Case 1
          DisableGadgetEx(0, GetGadgetState(1)!0)
        Case 2
          GadgetToggleEx(0, GetGadgetState(2)!0)
      EndSelect
  EndSelect
  
ForEver



DataSection
  ImageButton0:
  Data.b $89,$50,$4E,$47,$0D,$0A,$1A,$0A,$00,$00,$00,$0D,$49,$48,$44,$52,$00,$00,$00,$1A
  Data.b $00,$00,$00,$11,$08,$06,$00,$00,$00,$C3,$8D,$BC,$0D,$00,$00,$00,$09,$70,$48,$59
  Data.b $73,$00,$00,$0B,$13,$00,$00,$0B,$13,$01,$00,$9A,$9C,$18,$00,$00,$00,$04,$67,$41
  Data.b $4D,$41,$00,$00,$AF,$C8,$37,$05,$8A,$E9,$00,$00,$00,$19,$74,$45,$58,$74,$53,$6F
  Data.b $66,$74,$77,$61,$72,$65,$00,$41,$64,$6F,$62,$65,$20,$49,$6D,$61,$67,$65,$52,$65
  Data.b $61,$64,$79,$71,$C9,$65,$3C,$00,$00,$02,$CD,$49,$44,$41,$54,$78,$DA,$BC,$55,$4D
  Data.b $68,$13,$41,$14,$FE,$66,$FF,$C8,$6F,$4D,$29,$56,$69,$29,$06,$8D,$5A,$41,$B0,$58
  Data.b $0F,$0A,$15,$2F,$7A,$E9,$29,$1E,$44,$44,$0F,$22,$78,$13,$9A,$96,$A2,$85,$62,$2D
  Data.b $FE,$40,$45,$6C,$A8,$54,$FC,$41,$6F,$05,$AF,$01,$EB,$41,$44,$D0,$43,$D5,$AB,$78
  Data.b $28,$48,$5A,$43,$A9,$B4,$A8,$D5,$D6,$AC,$69,$9A,$CD,$EE,$FA,$66,$36,$89,$59,$93
  Data.b $2D,$22,$E2,$83,$B7,$33,$B3,$F3,$DE,$7E,$EF,$7D,$EF,$CD,$2C,$F0,$9F,$84,$3D,$3D
  Data.b $72,$78,$8F,$6D,$59,$29,$DB,$B6,$A2,$B0,$6D,$70,$E5,$83,$33,$3A,$6B,$AF,$F9,$FA
  Data.b $FB,$28,$BF,$CB,$80,$B1,$B8,$C2,$14,$39,$AE,$06,$1B,$A2,$9B,$0F,$1D,$74,$8C,$4C
  Data.b $13,$04,$EC,$72,$AC,$16,$FB,$B7,$35,$4A,$41,$39,$13,$FE,$A4,$D1,$72,$C0,$EC,$62
  Data.b $11,$0B,$CF,$5F,$44,$0D,$5D,$8F,$2B,$92,$A6,$21,$D2,$BE,$13,$81,$D6,$16,$58,$6B
  Data.b $6B,$28,$E6,$72,$0E,$98,$6D,$95,$7D,$FF,$40,$6C,$D7,$D4,$09,$D2,$12,$DF,$09,$6F
  Data.b $8D,$62,$79,$FA,$3D,$08,$48,$25,$02,$19,$CC,$D5,$1C,$B2,$33,$69,$DA,$37,$FF,$69
  Data.b $6D,$78,$C0,$1C,$43,$91,$55,$55,$84,$61,$64,$BF,$C3,$2A,$AC,$D5,$18,$A6,$57,$B2
  Data.b $95,$B9,$5F,$91,$D1,$1A,$0C,$54,$D6,$1F,$7F,$E4,$B0,$5A,$FC,$15,$58,$6C,$43,$B8
  Data.b $B6,$09,$18,$1C,$20,$4E,$1D,$07,$B2,$0A,$05,$58,$66,$B1,$C6,$F0,$6B,$30,$8C,$93
  Data.b $83,$97,$10,$0A,$85,$90,$4E,$A7,$F1,$66,$3C,$89,$5D,$01,$0D,$D3,$B9,$02,$F6,$9F
  Data.b $EB,$45,$2C,$16,$2B,$BD,$1F,$AD,$EB,$CF,$91,$64,$55,$83,$54,$A6,$CE,$32,$0A,$54
  Data.b $3C,$A3,$46,$3B,$CD,$55,$4C,$5C,$1D,$86,$AE,$EB,$E2,$A3,$BB,$4F,$9F,$C5,$D4,$D2
  Data.b $8A,$0B,$E4,$F5,$D8,$0D,$B4,$6B,$52,$5D,$7F,$94,$32,$92,$24,$A2,$8E,$49,$94,$13
  Data.b $45,$E3,$A5,$9D,$86,$8E,$89,$CB,$43,$02,$AC,$A3,$A3,$03,$67,$6E,$DE,$AA,$80,$BC
  Data.b $4A,$8E,$10,$08,$F3,$F4,$65,$94,$44,$85,$BA,$FC,$97,$65,$14,$96,$BE,$21,$3B,$3B
  Data.b $EB,$59,$D4,$36,$D2,$BB,$03,$03,$E8,$1F,$1F,$17,$34,$72,$79,$34,$70,$01,$7B,$E7
  Data.b $E7,$F1,$69,$9D,$66,$D0,$1A,$23,$D0,$22,$11,$A7,$EB,$98,$A4,$40,$0E,$05,$A1,$36
  Data.b $34,$78,$3A,$CC,$F8,$7C,$88,$27,$12,$AE,$77,$27,$46,$AE,$E3,$59,$5F,$2F,$B6,$E5
  Data.b $F3,$9E,$7E,$72,$C0,$5F,$CA,$88,$53,$E7,$53,$20,$A9,$8A,$68,$F1,$7A,$F2,$59,$51
  Data.b $70,$A0,$A7,$4F,$D0,$B5,$B8,$B8,$88,$27,$0F,$1F,$E0,$78,$4F,$42,$AC,$31,$9A,$C4
  Data.b $CB,$E1,$21,$6C,$67,$F5,$81,$24,$F2,$A5,$4B,$81,$DA,$9B,$A8,$93,$7C,$7E,$20,$18
  Data.b $A4,$86,$A8,$6D,$6F,$DE,$C2,$4D,$47,$8F,$89,$DA,$F0,$1A,$A5,$C6,$92,$54,$B3,$3C
  Data.b $26,$AE,$5D,$C1,$A9,$C1,$8B,$02,$4C,$EF,$3F,$8F,$CC,$BD,$DB,$AE,$D6,$2F,$8B,$65
  Data.b $14,$85,$0A,$EA,$54,$32,$E0,$B5,$62,$B6,$FB,$B0,$E6,$C8,$60,$CE,$17,$C2,$46,$3A
  Data.b $5F,$53,$93,$8F,$91,$79,$F7,$16,$5D,$8D,$FC,$AC,$84,$D1,$45,$CF,$C9,$FB,$77,$D0
  Data.b $B6,$A3,$5D,$D8,$CE,$35,$35,$A3,$C5,$AF,$22,$40,$CC,$54,$8B,$91,$D5,$51,$20,$15
  Data.b $D4,$71,$1E,$35,$AA,$8F,$A4,$CA,$2E,$23,$1F,$69,$37,$9F,$2C,$2D,$88,$F5,$A6,$96
  Data.b $66,$D7,$FE,$BE,$AA,$BD,$EE,$ED,$5B,$3C,$B8,$93,$60,$D2,$D5,$A6,$30,$59,$16,$77
  Data.b $9C,$E0,$B1,$3A,$75,$BB,$F6,$0E,$AB,$5C,$9A,$AE,$2D,$EF,$B5,$2D,$A8,$33,$28,$01
  Data.b $0D,$3C,$CF,$94,$99,$CF,$27,$F4,$0F,$99,$88,$C7,$65,$55,$85,$F9,$37,$BF,$09,$6B
  Data.b $99,$29,$4A,$EA,$A7,$00,$03,$00,$14,$77,$B6,$28,$98,$5B,$C9,$3F,$00,$00,$00,$00
  Data.b $49,$45,$4E,$44,$AE,$42,$60,$82
  ImageButton0end:
EndDataSection


DataSection
  ImageButton1:
  Data.b $89,$50,$4E,$47,$0D,$0A,$1A,$0A,$00,$00,$00,$0D,$49,$48,$44,$52,$00,$00,$00,$1A
  Data.b $00,$00,$00,$11,$08,$06,$00,$00,$00,$C3,$8D,$BC,$0D,$00,$00,$00,$09,$70,$48,$59
  Data.b $73,$00,$00,$0B,$13,$00,$00,$0B,$13,$01,$00,$9A,$9C,$18,$00,$00,$00,$04,$67,$41
  Data.b $4D,$41,$00,$00,$AF,$C8,$37,$05,$8A,$E9,$00,$00,$00,$19,$74,$45,$58,$74,$53,$6F
  Data.b $66,$74,$77,$61,$72,$65,$00,$41,$64,$6F,$62,$65,$20,$49,$6D,$61,$67,$65,$52,$65
  Data.b $61,$64,$79,$71,$C9,$65,$3C,$00,$00,$02,$DE,$49,$44,$41,$54,$78,$DA,$BC,$55,$4D
  Data.b $68,$13,$41,$14,$FE,$76,$77,$76,$93,$4D,$B7,$6D,$DA,$0A,$6A,$A1,$35,$68,$34,$55
  Data.b $5B,$AC,$14,$15,$EC,$41,$8B,$7A,$B3,$18,$2F,$E2,$A9,$A0,$17,$7B,$AC,$58,$FC,$C3
  Data.b $83,$45,$50,$2F,$82,$87,$56,$04,$8B,$1E,$ED,$B1,$3F,$A2,$55,$B1,$07,$B5,$20,$7A
  Data.b $F0,$AF,$88,$D6,$42,$DA,$0A,$FD,$6F,$29,$26,$1A,$D2,$64,$77,$9C,$99,$6C,$12,$B7
  Data.b $F9,$11,$41,$1C,$78,$3B,$F3,$66,$DE,$7B,$DF,$BC,$6F,$DE,$CC,$02,$FF,$A9,$49,$8F
  Data.b $0F,$1D,$DC,$41,$2D,$AB,$97,$52,$CB,$07,$4A,$C1,$85,$77,$C9,$3E,$A9,$E7,$1B,$17
  Data.b $5E,$47,$6A,$6E,$1C,$92,$14,$24,$12,$51,$82,$9A,$51,$EA,$5B,$B7,$7F,$5F,$D2,$C8
  Data.b $34,$C1,$80,$33,$4E,$DC,$83,$37,$9A,$DA,$DB,$6A,$DD,$0E,$08,$9A,$59,$B2,$FD,$2D
  Data.b $33,$81,$A9,$A7,$43,$BE,$78,$38,$1C,$24,$B2,$A6,$A1,$AC,$AE,$16,$A5,$9B,$36,$C2
  Data.b $5A,$59,$81,$19,$8D,$0A,$43,$96,$A1,$23,$58,$E1,$46,$9D,$43,$3B,$2B,$6A,$99,$28
  Data.b $DB,$1A,$C0,$C2,$DB,$0F,$60,$40,$2A,$14,$55,$85,$CC,$D6,$63,$F3,$73,$00,$DF,$CD
  Data.b $BF,$38,$13,$5B,$44,$6C,$86,$41,$F8,$40,$21,$04,$32,$DB,$89,$AA,$B9,$B3,$1C,$3E
  Data.b $4D,$4D,$A7,$C7,$45,$2E,$0D,$1B,$2A,$2A,$D2,$FA,$C4,$E2,$22,$7E,$C4,$56,$D2,$FA
  Data.b $B6,$CA,$F5,$59,$FE,$C4,$E5,$4A,$02,$71,$EA,$14,$55,$03,$21,$2A,$A0,$EB,$59,$86
  Data.b $B3,$0A,$41,$F0,$54,$2B,$0C,$C3,$C0,$D8,$D8,$18,$DE,$0F,$F4,$61,$57,$75,$15,$DE
  Data.b $4C,$7E,$C3,$96,$E6,$23,$F0,$FB,$FD,$62,$FE,$EB,$83,$01,$68,$39,$FC,$39,$10,$8F
  Data.b $2F,$0B,$EA,$38,$A2,$E6,$82,$E6,$D6,$B3,$A4,$B9,$26,$80,$FE,$EE,$6E,$44,$22,$11
  Data.b $11,$B4,$B2,$E9,$00,$06,$3F,$8F,$3A,$40,$42,$4F,$06,$B1,$77,$B3,$3F,$A7,$3F,$71
  Data.b $B9,$ED,$8C,$38,$75,$0C,$51,$65,$99,$59,$6E,$77,$4E,$BE,$83,$75,$DB,$D1,$7F,$EF
  Data.b $2E,$0E,$9F,$38,$89,$FA,$FA,$7A,$01,$90,$CA,$70,$72,$E8,$19,$1A,$03,$81,$BC,$67
  Data.b $A5,$B0,$B8,$69,$EA,$E6,$46,$3E,$62,$6A,$78,$18,$91,$50,$28,$AF,$43,$39,$93,$DB
  Data.b $5F,$46,$D1,$DE,$D9,$29,$40,$78,$EB,$B9,$78,$01,$BB,$E7,$66,$F1,$B2,$40,$51,$28
  Data.b $C5,$C5,$20,$CC,$5E,$50,$27,$2B,$12,$1B,$98,$AC,$4F,$E4,$95,$90,$A1,$23,$D8,$D6
  Data.b $E6,$08,$72,$FC,$EA,$35,$31,$5F,$C8,$8F,$1D,$F1,$EF,$D4,$49,$20,$F0,$80,$56,$18
  Data.b $39,$77,$35,$AB,$79,$B0,$A7,$FD,$B2,$A0,$6C,$66,$66,$06,$0F,$EF,$DC,$C2,$B1,$D3
  Data.b $67,$85,$8E,$9B,$5D,$78,$71,$E9,$0C,$6A,$AC,$68,$EE,$1B,$C6,$CE,$89,$8A,$64,$18
  Data.b $75,$AA,$C7,$05,$DD,$AB,$C3,$B3,$C6,$C8,$92,$A5,$22,$37,$BC,$2D,$AD,$E2,$6C,$78
  Data.b $41,$0C,$DC,$B8,$82,$86,$E9,$11,$DC,$EF,$38,$97,$2E,$90,$9D,$E7,$3B,$84,$5D,$2E
  Data.b $7F,$8D,$67,$CC,$AB,$9A,$A7,$A5,$BA,$09,$34,$89,$A5,$19,$77,$66,$F4,$33,$61,$61
  Data.b $BC,$A4,$1C,$0D,$D1,$65,$BC,$EA,$EB,$C1,$C4,$BB,$D7,$68,$D2,$C3,$EC,$1A,$18,$68
  Data.b $42,$18,$8F,$BA,$AE,$A3,$AA,$A6,$56,$D8,$8E,$AF,$F5,$A1,$4A,$5E,$82,$87,$C8,$8E
  Data.b $18,$D1,$98,$0B,$66,$CC,$A6,$4E,$D5,$29,$74,$56,$DE,$2A,$75,$02,$79,$98,$1C,$45
  Data.b $82,$45,$79,$2E,$F4,$6A,$2F,$FF,$66,$6C,$1A,$B1,$94,$59,$13,$77,$B5,$24,$8B,$3A
  Data.b $33,$4C,$10,$A3,$0A,$88,$A4,$28,$88,$27,$D8,$B3,$60,$B0,$8B,$55,$5C,$9A,$F7,$19
  Data.b $FB,$F3,$E3,$4A,$ED,$07,$D6,$A9,$C7,$BF,$CB,$8C,$3A,$76,$71,$D9,$B8,$37,$1E,$97
  Data.b $DA,$16,$E6,$35,$6F,$B2,$88,$57,$03,$D9,$10,$A9,$CF,$5F,$FF,$26,$AC,$65,$89,$D0
  Data.b $DE,$5F,$02,$0C,$00,$0C,$45,$5B,$FC,$81,$BD,$E4,$8A,$00,$00,$00,$00,$49,$45,$4E
  Data.b $44,$AE,$42,$60,$82
  ImageButton1end:
EndDataSection

DataSection
  ImageButton2:
  Data.b $89,$50,$4E,$47,$0D,$0A,$1A,$0A,$00,$00,$00,$0D,$49,$48,$44,$52,$00,$00,$00,$1A
  Data.b $00,$00,$00,$11,$08,$06,$00,$00,$00,$C3,$8D,$BC,$0D,$00,$00,$00,$09,$70,$48,$59
  Data.b $73,$00,$00,$0B,$13,$00,$00,$0B,$13,$01,$00,$9A,$9C,$18,$00,$00,$00,$04,$67,$41
  Data.b $4D,$41,$00,$00,$AF,$C8,$37,$05,$8A,$E9,$00,$00,$00,$19,$74,$45,$58,$74,$53,$6F
  Data.b $66,$74,$77,$61,$72,$65,$00,$41,$64,$6F,$62,$65,$20,$49,$6D,$61,$67,$65,$52,$65
  Data.b $61,$64,$79,$71,$C9,$65,$3C,$00,$00,$02,$F6,$49,$44,$41,$54,$78,$DA,$BC,$55,$4B
  Data.b $68,$13,$61,$10,$FE,$B2,$8F,$66,$F3,$68,$12,$2C,$F6,$21,$14,$35,$44,$28,$0D,$2D
  Data.b $16,$A1,$F4,$54,$8A,$62,$BD,$54,$28,$A2,$D0,$AB,$56,$45,$D4,$83,$AD,$82,$A0,$42
  Data.b $63,$7B,$13,$C5,$5A,$A1,$7A,$6A,$45,$D4,$4B,$A1,$B4,$B5,$AD,$54,$A5,$08,$1E,$BD
  Data.b $A4,$A0,$B4,$42,$0E,$35,$F8,$20,$F4,$95,$F7,$26,$BB,$C9,$AE,$FF,$FE,$1B,$B6,$49
  Data.b $9B,$04,$11,$71,$D8,$D9,$CC,$FC,$FF,$3F,$F3,$CD,$3F,$33,$3B,$01,$FE,$13,$99,$B4
  Data.b $D7,$54,$5B,$EB,$D9,$54,$22,$39,$A6,$A8,$2A,$D1,$54,$FD,$A1,$72,$8E,$72,$B2,$B1
  Data.b $A6,$1A,$AF,$12,$6B,$39,$99,$08,$9A,$4F,$33,$C7,$7F,$E0,$B4,$25,$31,$2D,$0D,$3B
  Data.b $0F,$37,$A3,$DA,$EB,$25,$9B,$0A,$94,$6C,$96,$FC,$28,$BA,$05,$7D,$D4,$E2,$61,$E6
  Data.b $C7,$92,$0B,$D0,$00,$23,$F6,$1A,$4B,$B1,$18,$96,$A7,$5E,$77,$50,$20,$59,$51,$1C
  Data.b $76,$B7,$1B,$E6,$BA,$3A,$64,$52,$29,$28,$89,$38,$D4,$6C,$06,$24,$9C,$C2,$9B,$FD
  Data.b $29,$D1,$00,$49,$A0,$04,$88,$E3,$79,$A4,$88,$4E,$81,$88,$4B,$C4,$13,$09,$28,$3F
  Data.b $BE,$63,$6D,$65,$F9,$EF,$9C,$97,$A1,$02,$A0,$58,$24,$82,$58,$34,$8A,$F0,$FA,$46
  Data.b $C1,$A1,$24,$C1,$4C,$E4,$E9,$36,$C2,$56,$D3,$B6,$BE,$A6,$96,$DE,$33,$80,$B4,$9B
  Data.b $D1,$D4,$91,$BC,$46,$09,$88,$92,$C9,$60,$6B,$A3,$10,$48,$26,$EC,$3A,$D9,$8D,$AB
  Data.b $B7,$EF,$50,$7D,$7A,$62,$02,$9F,$1F,$DC,$23,$86,$2A,$C4,$C6,$26,$DC,$18,$79,$0C
  Data.b $BB,$DD,$8E,$F7,$6F,$E6,$B1,$78,$77,$00,$CE,$22,$F5,$14,$09,$10,$AB,$09,$27,$6A
  Data.b $6A,$7C,$29,$41,$40,$82,$80,$6D,$86,$42,$10,$45,$D1,$60,$89,$F0,$E6,$92,$1F,$2B
  Data.b $9B,$61,$B4,$75,$74,$A0,$81,$34,$CC,$D2,$AF,$10,$D6,$49,$FD,$6E,$8E,$3E,$A1,$20
  Data.b $EF,$E6,$E6,$30,$7D,$BD,$0F,$1C,$49,$7F,$BE,$AD,$C1,$A9,$B4,$DE,$DE,$F7,$9B,$9B
  Data.b $D4,$A4,$CB,$05,$31,$12,$C6,$7A,$F0,$5B,$D1,$3C,$67,$19,$16,$DE,$CB,$57,$D0,$3F
  Data.b $38,$44,$F5,$78,$3C,$4E,$41,$DE,$CE,$CE,$E2,$C5,$85,$5E,$08,$E9,$54,$E9,$DE,$60
  Data.b $38,$3D,$75,$2A,$81,$93,$33,$32,$64,$59,$86,$94,$96,$4A,$1A,$F8,$1F,$3D,$C4,$64
  Data.b $A3,$17,$A7,$7A,$7A,$28,$48,$20,$10,$C0,$D8,$F9,$73,$10,$48,$0B,$4B,$65,$9A,$81
  Data.b $11,$58,$30,$54,$20,$D1,$32,$0C,$03,$96,$E3,$C1,$57,$54,$94,$E4,$AA,$A3,$C7,$D1
  Data.b $D9,$D5,$65,$38,$F0,$78,$3C,$68,$BD,$78,$09,$8C,$C5,$52,$D6,$8E,$25,$BE,$E9,$8D
  Data.b $38,$8E,$85,$59,$B0,$C0,$44,$7A,$DF,$EA,$74,$14,$8D,$8A,$6F,$6D,$83,$6F,$6C,$5C
  Data.b $AF,$C9,$FC,$3C,$82,$5F,$57,$D0,$DB,$D7,$4F,$52,$39,$88,$61,$96,$41,$E0,$D9,$38
  Data.b $58,$ED,$DB,$29,$96,$F6,$B4,$AC,$03,$55,$70,$1C,$4C,$8E,$4A,$64,$AC,$66,$28,$52
  Data.b $7A,$D7,$41,$B9,$A1,$11,$B7,$46,$9F,$52,$10,$BF,$DF,$8F,$85,$21,$1F,$04,$25,$8B
  Data.b $A9,$FA,$7A,$74,$9F,$3E,$83,$6B,$03,$3E,$8C,$B0,$1C,$42,$33,$93,$BA,$C3,$1D,$94
  Data.b $0C,$AD,$E5,$80,$C8,$F5,$2C,$7B,$5C,$A4,$56,$26,$F0,$1C,$5B,$70,$E8,$A7,$9C,$41
  Data.b $4B,$7B,$3B,$3E,$CE,$CE,$50,$FD,$D3,$CC,$34,$0E,$EC,$AB,$A5,$F2,$97,$97,$CF,$21
  Data.b $87,$B7,$68,$00,$87,$3C,$6E,$AC,$EE,$3F,$08,$B7,$22,$EF,$02,$DA,$88,$C4,$F4,$AE
  Data.b $7B,$D5,$79,$4C,$B5,$1D,$69,$01,$6F,$B3,$42,$8C,$46,$FE,$F9,$E4,$0E,$2E,$2C,$EA
  Data.b $37,$B2,$59,$84,$B0,$35,$9B,$71,$59,$04,$33,$F9,$B2,$1D,$45,$87,$E6,$EE,$79,$AA
  Data.b $96,$1D,$B2,$DB,$F5,$49,$A3,$AA,$D2,$A6,$03,$39,$9D,$4E,$9F,$B4,$1A,$1C,$4E,$AE
  Data.b $7E,$2B,$FC,$8B,$C8,$9B,$79,$DB,$D3,$19,$C6,$54,$37,$E0,$F2,$A6,$B6,$B6,$A7,$EE
  Data.b $D0,$6B,$F7,$56,$FB,$7F,$0B,$30,$00,$D3,$02,$72,$7C,$76,$A0,$82,$C4,$00,$00,$00
  Data.b $00,$49,$45,$4E,$44,$AE,$42,$60,$82
  ImageButton2end:
EndDataSection


Re: ButtonGadgetEx - Images als Button

Verfasst: 25.11.2011 21:17
von ts-soft
:allright:
Jetzt noch diese Zeile:

Code: Alles auswählen

*GadgetEx\FACE = GetSysColor_(#COLOR_3DFACE)
gegen was crossplattformtaugliches tauschen dann wäre es noch schöner :wink:

Gruß
Thomas

Re: ButtonGadgetEx - Images als Button

Verfasst: 25.11.2011 21:34
von HeX0R
cOoki3druqs hat geschrieben: habe noch nie was mit dem CanvasGadget gemacht und wollte eine alternative für ein button durch ein ImageGadget. sollte sich wie ein windows button verhalten.
Du meinst ein ButtonImageGadget()?

Re: ButtonGadgetEx - Images als Button

Verfasst: 25.11.2011 21:51
von Lambda
sogesehen ja nur ohne den button im hintergrund^^ und images für jeden zustand

Re: ButtonGadgetEx - Images als Button

Verfasst: 25.11.2011 22:32
von Bisonte
Ist das CanvasGadget nicht ein wenig overdressed dafür ?

Ich würde dafür ImageGadgets nehmen, weil die Images dafür schon vohanden sind (kein neuzeichnen)
und ich hab Transparenz...

Re: ButtonGadgetEx - Images als Button

Verfasst: 25.11.2011 23:05
von Lambda
transparenz hast du hier auch solange der button nicht auf einem bild liegt.

hab es mal etwas erweitert.. kann getoggled werden und das deaktivierte bild ist nichtmehr nötig

edit: allerdings geht die transparenz bei einem png flöten.. weis jemand wie ich den filter richtig anpassen muss?

Re: ButtonGadgetEx - Images als Button

Verfasst: 26.11.2011 00:28
von Bisonte
Falls du damit meinst, dass du transparenten Hintergrund hast ? Kannst knicken. Canvas ist 24 Bit... Keine Transparenz,
(und wie in einem anderem Thread) egal wieviele transparente Images du draufmalst ;)

Re: ButtonGadgetEx - Images als Button

Verfasst: 26.11.2011 00:36
von Lambda
nein darum gehts nicht.. das gadget an sich ist leider nicht transparent da hast du recht.. aber solange kein mehrfarbiger hintergrund da ist kein problem. nur bei der grau skalierung gibt es noch ein problem bei transparenten png´s

Re: ButtonGadgetEx - Images als Button

Verfasst: 26.11.2011 04:06
von Bisonte
Warum Grau-Skalierung ? Zeichne doch das Disabled Image per DrawAlphaImage() und einem AlphaWert von 128.

Re: ButtonGadgetEx - Images als Button

Verfasst: 26.11.2011 10:40
von rolaf
Wattn Aufwand fürn Button, aber schön isses doch. :mrgreen: