Menu pluginu - vylepšení chování menu a separátorů

Podpora vývojářů nových pluginů, oznámení o nových pluginech nezávislých autorů a diskuse o nich.
User avatar
stepand76
Plugin Developer
Plugin Developer
Posts: 455
Joined: 16 Apr 2007, 21:22
Location: Pardubice, Czech Republic

Menu pluginu - vylepšení chování menu a separátorů

Post by stepand76 »

Ahoj, v jednom pluginu, který připravuji, je poměrně hodně příkazů v menu. Příkazy, které nedávají smysl, se proto skrývají (místo zakazování). Pro přehlednost jsou odděleny separátory. Dochází ke stavům, kdy po skrytí více příkazů jsou vedle sebe dva separátory, nebo je nějaký separátor na začátku či konci menu. Mám k tomu 2 dotazy:

1. Je v plánu toto nějak automaticky ošetřit na úrovni AS? Tj. aby AS před zobrazením menu pluginu skryl duplicitní a okrajové separátory?
2. Pokud to v plánu není, tak bych rád věděl jak to lze řešit na úrovni pluginu. Lze skrývat i separátor? Každopádně to bude nešikovné, protože zde není společný handler pro nastavení stavu všech položek, ale pouze pro položky samostatně. Už tu na toto téma je nějaké jiné vlákno...
Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5229
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Re: Menu pluginu - vylepšení chování menu a separátorů

Post by Jan Rysavy »

Automatiku zatím neplánujeme, momentálně nemám pocit, že by to někdo požadoval.

Podle SDK / spl_menu.h / AddMenuItem() to vypadá, že lze skrýt i separátory.

O kolik jde položek v menu? Na základě čeho se budou skrývat?
Nemělo by smysl je raději rozdělit do sub menu?
User avatar
stepand76
Plugin Developer
Plugin Developer
Posts: 455
Joined: 16 Apr 2007, 21:22
Location: Pardubice, Czech Republic

Re: Menu pluginu - vylepšení chování menu a separátorů

Post by stepand76 »

Jan Rysavy wrote:O kolik jde položek v menu? Na základě čeho se budou skrývat?
Jde o příkazy TortoiseSVN. Celkem je jich cca 50, současně zobrazených cca 25. Skrývat se budou na základě toho co je označené (soubor/složka/je to lok. kopie/není to lok. kopie/počet označených položek).
Jan Rysavy wrote:Nemělo by smysl je raději rozdělit do sub menu?
To mě napadlo, ale nevím jestli je to dobrý. Bude to hůře přístupné. To už si raději pohraju s tím skrýváním separátorů...

Každopádně díky za info.
Jan Rysavy
ALTAP Staff
ALTAP Staff
Posts: 5229
Joined: 08 Dec 2005, 06:34
Location: Novy Bor, Czech Republic
Contact:

Re: Menu pluginu - vylepšení chování menu a separátorů

Post by Jan Rysavy »

Koukám do context menu TSVN co mám na mašině a je tam pouze několik málo příkazů. Jak uživatelé spouštějí ty ostatní?
User avatar
stepand76
Plugin Developer
Plugin Developer
Posts: 455
Joined: 16 Apr 2007, 21:22
Location: Pardubice, Czech Republic

Re: Menu pluginu - vylepšení chování menu a separátorů

Post by stepand76 »

Jan Rysavy wrote:Koukám do context menu TSVN co mám na mašině a je tam pouze několik málo příkazů. Jak uživatelé spouštějí ty ostatní?
Jak jsem psal výčet příkazů záleží na tom co je označené (soubor/složka/je to lok. kopie/není to lok. kopie/počet označených položek). Navíc je možné použít tzv. "extended" menu (stisknutí Shift): http://tortoisesvn.net/node/347

Zde je výčet příkazů TSVN (z aktuální revize). Je jich více než 50 (když nepočítám submenu):

Code: Select all

enum SVNCommands
	{
		ShellSeparator = 0,
		ShellSubMenu = 1,
		ShellSubMenuFolder,
		ShellSubMenuFile,
		ShellSubMenuLink,
		ShellSubMenuMultiple,
		ShellMenuCheckout,
		ShellMenuUpdate,
		ShellMenuCommit,
		ShellMenuAdd,
		ShellMenuAddAsReplacement,
		ShellMenuRevert,
		ShellMenuCleanup,
		ShellMenuResolve,
		ShellMenuSwitch,
		ShellMenuImport,
		ShellMenuExport,
		ShellMenuAbout,
		ShellMenuCreateRepos,
		ShellMenuCopy,
		ShellMenuMerge,
		ShellMenuMergeAll,
		ShellMenuSettings,
		ShellMenuRemove,
		ShellMenuRemoveKeep,
		ShellMenuRename,
		ShellMenuUpdateExt,
		ShellMenuDiff,
		ShellMenuPrevDiff,
		ShellMenuUrlDiff,
		ShellMenuDropCopyAdd,
		ShellMenuDropMoveAdd,
		ShellMenuDropMove,
		ShellMenuDropMoveRename,
		ShellMenuDropCopy,
		ShellMenuDropCopyRename,
		ShellMenuDropExport,
		ShellMenuDropExportExtended,
		ShellMenuLog,
		ShellMenuConflictEditor,
		ShellMenuRelocate,
		ShellMenuHelp,
		ShellMenuShowChanged,
		ShellMenuIgnoreSub,
		ShellMenuDeleteIgnoreSub,
		ShellMenuIgnore,
		ShellMenuDeleteIgnore,
		ShellMenuIgnoreCaseSensitive,
		ShellMenuDeleteIgnoreCaseSensitive,
		ShellMenuRepoBrowse,
		ShellMenuBlame,
		ShellMenuApplyPatch,
		ShellMenuCreatePatch,
		ShellMenuRevisionGraph,
		ShellMenuUnIgnoreSub,
		ShellMenuUnIgnoreCaseSensitive,
		ShellMenuUnIgnore,
		ShellMenuLock,
		ShellMenuUnlock,
		ShellMenuUnlockForce,
		ShellMenuProperties,
		ShellMenuDelUnversioned,
		ShellMenuClipPaste,
		ShellMenuUpgradeWC,
		ShellMenuLastEntry			// used to mark the menu array end
	};
User avatar
stepand76
Plugin Developer
Plugin Developer
Posts: 455
Joined: 16 Apr 2007, 21:22
Location: Pardubice, Czech Republic

Re: Menu pluginu - vylepšení chování menu a separátorů

Post by stepand76 »

Jan Rysavy wrote:Podle SDK / spl_menu.h / AddMenuItem() to vypadá, že lze skrýt i separátory.
AddMenuItem je v spl_base.h, ne? No každopádně mi přijde, že to pro separátory nefunguje. Nezavolá se pro něj GetMenuItemState. Nebo dělám něco špatně?
Post Reply