Skip to content

Commit

Permalink
XML Ribbon markup file
Browse files Browse the repository at this point in the history
The standard windows library ribbon interface is either constructed
at runtime or specified in an XML file.  Since we have a static
set of functionality in our ribbon, it is simplest to just use the
XML file.

This should duplicate the interfaces currently provided by the
MFC ribbon, though the menu items in the file menu are slightly
taller than they used to be.

Use uicc.exe to compile the XML to the binary format and produce
a kfwribon.rc resource file and kfwribbon.h header.

(cherry picked from commit da60312)

ticket: 8192
version_fixed: 1.13.3
  • Loading branch information
kaduk authored and tlyu committed May 13, 2015
1 parent 0e16cd4 commit 5301366
Show file tree
Hide file tree
Showing 2 changed files with 137 additions and 0 deletions.
6 changes: 6 additions & 0 deletions src/windows/leash/Makefile.in
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,9 @@ $(OUTPRE)$(EXE_NAME).exe: $(OBJS) $(XOBJS) $(LIBS)
../lib/$(OUTPRE)libwin.lib atl.lib $(MFCLIB) $(SCLIB)
copy $@ "$(OUTPRE)MIT Kerberos.exe"

kfwribbon.bml kfwribbon.h kfwribbon.rc: kfwribbon.xml
uicc.exe kfwribbon.xml kfwribbon.bml /res:kfwribbon.rc /header:kfwribbon.h /name:KFW_RIBBON

$(RESFILE): Leash.rc res/Leash.rc2 ver.rc ../version.rc ../kerberos.ver

clean::
Expand All @@ -113,3 +116,6 @@ clean::
if exist $(OUTPRE)*.res del $(OUTPRE)*.res
if exist $(OUTPRE)*.pdb del $(OUTPRE)*.pdb
if exist *.err del *.err
if exist *.bml del *.bml
if exist kfwribbon.h del kfwribbon.h
if exist kfwribbon.rc del kfwribbon.rc
131 changes: 131 additions & 0 deletions src/windows/leash/kfwribbon.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
<?xml version="1.0" encoding="utf-8"?>
<Application xmlns="http://schemas.microsoft.com/windows/2009/Ribbon">
<Application.Commands>
<Command Name="cmdAppMenu" LabelTitle="Application Menu" />
<Command Name="cmdQAT" LabelTitle="" />
<Command Name="cmdHelp" LabelTitle="Help" />
<Command Name="cmdAbout" LabelTitle="About MIT Kerberos" />
<Command Name="cmdExit" LabelTitle="Exit application" />
<Command Name="cmdHomeTab" LabelTitle="Home" Keytip="H" />
<Command Name="cmdOptionsTab" LabelTitle="Options" Keytip="O" />
<Command Name="cmdChangePasswordGroup" LabelTitle="" />
<Command Name="cmdTicketGroup" LabelTitle="" />
<Command Name="cmdViewOptionsGroup" LabelTitle="View Options" />
<Command Name="cmdTicketOptionsGroup" LabelTitle="Ticket Options" />
<Command Name="cmdGetTicketButton"
LabelTitle="Get Ticket"
Keytip="T">
<Command.LargeImages>
<Image>res/getticketlarge.bmp</Image>
</Command.LargeImages>
</Command>
<Command Name="cmdRenewTicketButton"
LabelTitle="Renew Ticket"
Keytip="R">
<Command.LargeImages>
<Image>res/renewlarge.bmp</Image>
</Command.LargeImages>
</Command>
<Command Name="cmdDestroyTicketButton"
LabelTitle="Destroy Ticket"
Keytip="D">
<Command.LargeImages>
<Image>res/destroylarge.bmp</Image>
</Command.LargeImages>
</Command>
<Command Name="cmdMakeDefaultButton"
LabelTitle="Make Default"
Keytip="M">
<Command.LargeImages>
<Image>res/makedefaultlarge.bmp</Image>
</Command.LargeImages>
</Command>
<Command Name="cmdChangePasswordButton"
LabelTitle="Change Password"
Keytip="C">
<Command.LargeImages>
<Image>res/cpwlarge.bmp</Image>
</Command.LargeImages>
</Command>
<Command Name="cmdIssuedCheckBox"
LabelTitle="Issued"
Keytip="I" />
<Command Name="cmdRenewUntilCheckBox"
LabelTitle="Renewable Until"
Keytip="R" />
<Command Name="cmdValidUntilCheckBox"
LabelTitle="Valid Until"
Keytip="V" />
<Command Name="cmdEncTypeCheckBox"
LabelTitle="Encryption Type"
Keytip="E" />
<Command Name="cmdFlagsCheckBox"
LabelTitle="Flags"
Keytip="F" />
<Command Name="cmdAutoRenewCheckBox"
LabelTitle="Automatic Ticket Renewal"
Keytip="R" />
<Command Name="cmdExpireAlarmCheckBox"
LabelTitle="Expiration Alarm"
Keytip="A" />
<Command Name="cmdDestroyOnExitCheckBox"
LabelTitle="Destroy Tickets on Exit"
Keytip="D" />
<Command Name="cmdMixedCaseCheckBox"
LabelTitle="Allow Mixed Case Realm Names"
Keytip="M" />
</Application.Commands>
<Application.Views>
<Ribbon>
<Ribbon.ApplicationMenu>
<ApplicationMenu CommandName="cmdAppMenu">
<MenuGroup>
<Button CommandName="cmdHelp" />
<Button CommandName="cmdAbout" />
<Button CommandName="cmdExit" />
</MenuGroup>
</ApplicationMenu>
</Ribbon.ApplicationMenu>
<Ribbon.QuickAccessToolbar>
<QuickAccessToolbar CommandName="cmdQAT" />
</Ribbon.QuickAccessToolbar>
<Ribbon.Tabs>
<Tab CommandName="cmdHomeTab">
<Tab.ScalingPolicy>
<ScalingPolicy>
<ScalingPolicy.IdealSizes>
<Scale Group="cmdTicketGroup" Size="Large" />
<Scale Group="cmdChangePasswordGroup" Size="Large" />
</ScalingPolicy.IdealSizes>
</ScalingPolicy>
</Tab.ScalingPolicy>
<Group CommandName="cmdTicketGroup" SizeDefinition="FourButtons">
<Button CommandName="cmdGetTicketButton" />
<Button CommandName="cmdRenewTicketButton" />
<Button CommandName="cmdDestroyTicketButton" />
<Button CommandName="cmdMakeDefaultButton" />
</Group>
<Group CommandName="cmdChangePasswordGroup"
SizeDefinition="OneButton">
<Button CommandName="cmdChangePasswordButton" />
</Group>
</Tab>
<Tab CommandName="cmdOptionsTab">
<Group CommandName="cmdViewOptionsGroup">
<CheckBox CommandName="cmdIssuedCheckBox" />
<CheckBox CommandName="cmdRenewUntilCheckBox" />
<CheckBox CommandName="cmdValidUntilCheckBox" />
<CheckBox CommandName="cmdEncTypeCheckBox" />
<CheckBox CommandName="cmdFlagsCheckBox" />
</Group>
<Group CommandName="cmdTicketOptionsGroup" >
<CheckBox CommandName="cmdAutoRenewCheckBox" />
<CheckBox CommandName="cmdExpireAlarmCheckBox" />
<CheckBox CommandName="cmdDestroyOnExitCheckBox" />
<CheckBox CommandName="cmdMixedCaseCheckBox" />
</Group>
</Tab>
</Ribbon.Tabs>
</Ribbon>
</Application.Views>
</Application>

0 comments on commit 5301366

Please sign in to comment.