mirror of
https://github.com/winscp/winscp.git
synced 2026-10-24 02:28:55 +03:00
156 lines
6.1 KiB
C++
156 lines
6.1 KiB
C++
//---------------------------------------------------------------------------
|
|
#ifndef RightsH
|
|
#define RightsH
|
|
//---------------------------------------------------------------------------
|
|
#include <Classes.hpp>
|
|
#include <Controls.hpp>
|
|
#include <StdCtrls.hpp>
|
|
#include <Forms.hpp>
|
|
#include <Buttons.hpp>
|
|
#include <ActnList.hpp>
|
|
#include <ImgList.hpp>
|
|
#include <Menus.hpp>
|
|
#include "GrayedCheckBox.hpp"
|
|
#include "PngImageList.hpp"
|
|
#include <System.Actions.hpp>
|
|
//---------------------------------------------------------------------------
|
|
#include <RemoteFiles.h>
|
|
#include <GUITools.h>
|
|
#include <System.ImageList.hpp>
|
|
#include <Vcl.AppEvnts.hpp>
|
|
//---------------------------------------------------------------------------
|
|
class TRightsFrame : public TFrame
|
|
{
|
|
__published:
|
|
TGrayedCheckBox *OwnerReadCheck;
|
|
TGrayedCheckBox *OwnerWriteCheck;
|
|
TGrayedCheckBox *OwnerExecuteCheck;
|
|
TGrayedCheckBox *GroupReadCheck;
|
|
TGrayedCheckBox *GroupWriteCheck;
|
|
TGrayedCheckBox *GroupExecuteCheck;
|
|
TGrayedCheckBox *OthersReadCheck;
|
|
TGrayedCheckBox *OthersWriteCheck;
|
|
TGrayedCheckBox *OthersExecuteCheck;
|
|
TCheckBox *DirectoriesXCheck;
|
|
TSpeedButton *OwnerButton;
|
|
TSpeedButton *GroupButton;
|
|
TSpeedButton *OthersButton;
|
|
TPopupMenu *RightsPopup;
|
|
TMenuItem *Norights1;
|
|
TMenuItem *Defaultrights1;
|
|
TMenuItem *Allrights1;
|
|
TMenuItem *Leaveasis1;
|
|
TActionList *RightsActions;
|
|
TAction *NoRightsAction;
|
|
TAction *DefaultRightsAction;
|
|
TAction *AllRightsAction;
|
|
TAction *LeaveRightsAsIsAction;
|
|
TPngImageList *RightsImages;
|
|
TMenuItem *N1;
|
|
TAction *CopyTextAction;
|
|
TAction *CopyOctalAction;
|
|
TAction *PasteAction;
|
|
TMenuItem *CopyAsText1;
|
|
TMenuItem *CopyAsOctal1;
|
|
TMenuItem *Paste1;
|
|
TPngImageList *RightsImages120;
|
|
TPngImageList *RightsImages144;
|
|
TPngImageList *RightsImages192;
|
|
TLabel *OctalLabel;
|
|
TEdit *OctalEdit;
|
|
TGrayedCheckBox *SetUidCheck;
|
|
TGrayedCheckBox *SetGIDCheck;
|
|
TGrayedCheckBox *StickyBitCheck;
|
|
TButton *CloseButton;
|
|
void __fastcall ControlChange(TObject *Sender);
|
|
void __fastcall RightsButtonsClick(TObject *Sender);
|
|
void __fastcall RightsActionsExecute(TBasicAction *Action,
|
|
bool &Handled);
|
|
void __fastcall RightsActionsUpdate(TBasicAction *Action, bool &Handled);
|
|
void __fastcall RightsPopupPopup(TObject *Sender);
|
|
void __fastcall FrameContextPopup(TObject *Sender, TPoint &MousePos,
|
|
bool &Handled);
|
|
void __fastcall OctalEditChange(TObject * Sender);
|
|
void __fastcall OctalEditExit(TObject * Sender);
|
|
void __fastcall CloseButtonClick(TObject * Sender);
|
|
private:
|
|
bool FAllowAddXToDirectories;
|
|
TNotifyEvent FOnChange;
|
|
bool FPopup;
|
|
TWinControl * FPopupParent;
|
|
TButton * FDefaultButton;
|
|
TButton * FCancelButton;
|
|
bool FPopingContextMenu;
|
|
UnicodeString FAddXToDirectoriesSuffix;
|
|
bool FInitialized;
|
|
bool FAcl;
|
|
UnicodeString FOwnerCaption;
|
|
UnicodeString FGroupCaption;
|
|
UnicodeString FOthersCaption;
|
|
std::unique_ptr<TApplicationEvents> FApplicationEvents;
|
|
|
|
void CycleRights(TRights::TRightGroup RightGroup);
|
|
bool __fastcall GetAddXToDirectories();
|
|
bool __fastcall GetAllowUndef();
|
|
TCheckBox * __fastcall GetChecks(TRights::TRight Right);
|
|
TRights __fastcall GetRights();
|
|
TRights::TState __fastcall GetStates(TRights::TRight Right);
|
|
void __fastcall SetAddXToDirectories(bool value);
|
|
void __fastcall SetAllowAddXToDirectories(bool value);
|
|
void __fastcall SetAllowUndef(bool value);
|
|
void __fastcall SetRights(const TRights & value);
|
|
void __fastcall SetStates(TRights::TRight Right, TRights::TState value);
|
|
UnicodeString __fastcall GetText();
|
|
void __fastcall SetText(UnicodeString value);
|
|
|
|
public:
|
|
virtual __fastcall ~TRightsFrame();
|
|
__fastcall TRightsFrame(TComponent* Owner);
|
|
void __fastcall DropDown();
|
|
void __fastcall CloseUp();
|
|
void DisplayAsAcl();
|
|
|
|
__property bool AddXToDirectories = { read = GetAddXToDirectories, write = SetAddXToDirectories };
|
|
__property bool AllowAddXToDirectories = { read = FAllowAddXToDirectories, write = SetAllowAddXToDirectories };
|
|
__property bool AllowUndef = { read = GetAllowUndef, write = SetAllowUndef };
|
|
__property TCheckBox * Checks[TRights::TRight Right] = { read = GetChecks };
|
|
__property TNotifyEvent OnChange = { read = FOnChange, write = FOnChange };
|
|
__property TRights Rights = { read = GetRights, write = SetRights };
|
|
__property UnicodeString Text = { read = GetText, write = SetText };
|
|
__property bool Popup = { read = FPopup, write = SetPopup };
|
|
__property TWinControl * PopupParent = { read = FPopupParent, write = FPopupParent };
|
|
|
|
protected:
|
|
void __fastcall DoChange();
|
|
void __fastcall UpdateControls();
|
|
virtual void __fastcall SetEnabled(bool Value);
|
|
void __fastcall ForceUpdate();
|
|
virtual void __fastcall CreateParams(TCreateParams & Params);
|
|
virtual void __fastcall CreateWnd();
|
|
virtual void __fastcall Dispatch(void * Message);
|
|
void __fastcall CMDialogKey(TCMDialogKey & Message);
|
|
void __fastcall WMContextMenu(TWMContextMenu & Message);
|
|
void CMDPIChanged(TMessage & Message);
|
|
void CMDialogChar(TCMDialogChar & Message);
|
|
void WMUpdateUIState(TMessage & Message);
|
|
bool __fastcall IsAncestor(TControl * Control, TControl * Ancestor);
|
|
DYNAMIC void __fastcall DoExit();
|
|
void __fastcall SetPopup(bool value);
|
|
void __fastcall DoCloseUp();
|
|
bool __fastcall HasFocus();
|
|
bool __fastcall DirectoriesXEffective();
|
|
void __fastcall UpdateOctalEdit();
|
|
void __fastcall UpdateByOctal();
|
|
void DisplayAsAcl(TRights::TRight ReadRight, TRights::TRight WriteRight, TRights::TRight ExecRight, TRights::TRight SpecialRight);
|
|
void UpdateButtons();
|
|
void UpdateButton(TSpeedButton * Button, UnicodeString & Caption);
|
|
bool IsButtonAccel(TCMDialogChar & Message, TSpeedButton * Button, TWinControl * FocusControl);
|
|
void __fastcall ApplicationMessage(TMsg & Msg, bool & Handled);
|
|
|
|
INTERFACE_HOOK_CUSTOM(TFrame)
|
|
|
|
__property TRights::TState States[TRights::TRight Right] = { read = GetStates, write = SetStates };
|
|
};
|
|
//---------------------------------------------------------------------------
|
|
#endif
|