Jump to content

IconDock - Mac style Icon toolbar


eukalyptus
 Share

Recommended Posts

This is an UDF to create Mac style toolbars, like MobyDock, ObjectDock...

screenshots:

IconDock_1.jpg

IconDock_2.jpg

IconDock_3.jpg

examples included.

Download: IconDock.zip

for german users: http://www.autoit.de/index.php?page=Thread&postID=215581#post215581

enjoy

Link to comment
Share on other sites

Great stuff eukalyptus :)

The art of GDI+ programming can be learned by your code :)

Br,

UEZ

PS: 5* from me

Edited by UEZ

Please don't send me any personal message and ask for support! I will not reply!

Selection of finest graphical examples at Codepen.io

The own fart smells best!
Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!
¯\_(ツ)_/¯  ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ

Link to comment
Share on other sites

AWESOME!!! Could I add a few requests?

1. Allow files and shortcuts other than an executable to work on the toolbar. ie. URLs, shortcuts(lnk), word documents, etc and display the icon based on the file association.

2. Allow topmost on/off functionality to support hiding the toolbar behind a window. I know hiding the toolbar is an option but some people will forget it's there. We're not all Mac users...yet :unsure:

3. Support .ini file configuration. (Add functionality to point it to a folder to display icons from folder contents. Quicklaunch style.)

4. Make it pick the winning lottery numbers because you need to win because this thing is AMAZING! Great work!

Link to comment
Share on other sites

Amazing!

You're the man!!!

A great job indeed eukalyptus.

Cheers

Old Scriptology

Visual Ping 1.8 - Mass Ping Program with export to txt delimited.

Desktop 2 RGB and YMCK - Pick a color in the desktop and get the RGB and YMCK code.

Desktop 2 RGB - Pick a color in the desktop and get the RGB code.

ShootIT 1.0 - Screen Capture full and partial screen

[font="'Arial Black';"]Remember Remember The Fifth of November.[/font]

Link to comment
Share on other sites

  • 2 weeks later...

Great Job!

suggestion: Please give the user-defined tooltips. Now point to any Icon to display the same tip("SHELL32.dll"), if following $aIcon = SHELL32.dll

_IconDock_IconAddFile($hIconDock_1, $aIcon, 1, "_EventFunction", $IconDock_LBUTTONUP)

_IconDock_IconAddFile($hIconDock_2, $aIcon, 2, "_EventFunction", $IconDock_LBUTTONUP)

_IconDock_IconAddFile($hIconDock_3, $aIcon, 3, "_EventFunction", $IconDock_LBUTTONUP)

_IconDock_IconAddFile($hIconDock_4, $aIcon, 4, "_EventFunction", $IconDock_LBUTTONUP)

Edited by happytc
Link to comment
Share on other sites

  • 2 weeks later...

click right key on the dockbar using following code, cannot correct to display the "Config window", why?

#include <GuiConstantsEx.au3>
#include <GuiConstants.au3>
#include <WindowsConstants.au3>
#Include <Misc.au3>
#include "IconDock.au3"
 
 
HotKeySet("{ESC}", "_Exit")
 
Global $iIconSizeMin = 48
Global $iIconSizeMax = 96
 
Global $aIcon[8] = [7]
$aIcon[1] = @WindowsDir & "\explorer.exe"
$aIcon[2] = @SystemDir & "\taskmgr.exe"
$aIcon[3] = @SystemDir & "\write.exe"
$aIcon[4] = @SystemDir & "\notepad.exe"
$aIcon[5] = @SystemDir & "\osk.exe"
$aIcon[6] = @SystemDir & "\charmap.exe"
$aIcon[7] = @SystemDir & "\mspaint.exe"
 
Global $hIconDock = _IconDock_Create(0, @DesktopHeight - $iIconSizeMax - $iIconSizeMin, @DesktopWidth, $iIconSizeMax + $iIconSizeMin, BitOR($IconDock_Align_Horizontal, $IconDock_Center), $IconDock_Up, $iIconSizeMin, $iIconSizeMax, True)
 
_IconDock_BeginUpdate($hIconDock)
 
For $i = 1 To $aIcon[0]
        _IconDock_IconAddFile($hIconDock, $aIcon[$i], 0, "_EventFunction", $IconDock_RBUTTONDOWN)
Next
_IconDock_EndUpdate($hIconDock)
 
 
While 1
        Sleep(100)
WEnd
 
 
 
Func _EventFunction($hID, $iIconIndex, $iEventMsg)
        Switch $hID
                Case $hIconDock
                        Switch $iEventMsg
                                Case $IconDock_RBUTTONDOWN
                                        Local $moved = DockMoveBar($hIconDock)
                                        If $moved = False Then ; If $moved = true the bar was moved - don't open options.
                                                DockConfig()
                                        EndIf
                        EndSwitch
        EndSwitch
EndFunc
 
Func DockConfig()
        Local $hwdDock, $HRadio, $VRadio, $OKButton, $CancelButton, $msg
                
        $hwdDock = GUICreate("Dock Config", 280, 150)
        
        GUICtrlCreateLabel("IconSizeMin:", 10, 13, 80, 20)
        
        GUICtrlCreateLabel("IconSizeMax:", 10, 43, 80, 20)
        
        GUICtrlCreateLabel("Orientation:", 10, 83, 80, 20)
        $HRadio = GUICtrlCreateRadio("Horizontal", 100, 80, 100, 20)
        $VRadio = GUICtrlCreateRadio("Vertical", 200, 80, 100, 20)
 
        $OKButton = GUICtrlCreateButton("OK", 50, 120, 50, 20)
        $CancelButton = GUICtrlCreateButton("Cancel", 160, 120, 50, 20)
        
        GUISetState()
;MsgBox(0,0,"0k")
        While True
                $msg = GUIGetMsg()
 
                Switch $msg
                        Case $GUI_EVENT_CLOSE, $CancelButton
                                ExitLoop
                        Case $OKButton
                                MsgBox(0,"pressed", "Pressed OK Button")
                                ExitLoop
                EndSwitch
 
                Sleep(20)
                
        WEnd
        GUIDelete($hwdDock)
EndFunc
 
 
Func DockMoveBar($hwdGuiBar)
        Local $PosDiff[2], $WinPos, $WinPos2, $MousePos, $dll, $moved
        
        $dll = DllOpen("user32.dll")
        
        While 1
                $MousePos = MouseGetPos()
                $WinPos = WinGetPos($hwdGuiBar)
                $PosDiff[0] = $WinPos[0] - $MousePos[0]
                $PosDiff[1] = $WinPos[1] - $MousePos[1]
 
                While _IsPressed("02", $dll)
                        $MousePos = MouseGetPos()
                        WinMove($hwdGuiBar, "", $MousePos[0] + $PosDiff[0], $MousePos[1] + $PosDiff[1])
                WEnd
                Sleep(10)
                ExitLoop
        WEnd
        
        $WinPos2 = WinGetPos($hwdGuiBar, "")
        
        If ($WinPos[0] < $WinPos2[0] - 3) Or ($WinPos[1] < $WinPos2[1] - 3) Or ($WinPos[0] > $WinPos2[0] + 3) Or ($WinPos[1] > $WinPos2[1] + 3) Then
                $moved = True ; If the window was moved, don't run program on return.
        Else
                $moved = False
        EndIf
        
        Sleep(10)
        Return $moved   
EndFunc
 
Func _Exit()
        _IconDock_Destroy($hIconDock)
        Exit
EndFunc
Link to comment
Share on other sites

  • 2 weeks later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...