diff options
Diffstat (limited to 'mymenusetup.h')
-rw-r--r-- | mymenusetup.h | 84 |
1 files changed, 75 insertions, 9 deletions
diff --git a/mymenusetup.h b/mymenusetup.h index 7861155..ec8e7a4 100644 --- a/mymenusetup.h +++ b/mymenusetup.h @@ -6,20 +6,64 @@ extern cNestedItemList RecordingDirCommands; extern cCommands RecordingDirCommands; #endif +#define STRN0CPY(dst, src) \ + do { \ + strn0cpy(dst, src, sizeof(dst)); \ + } while(0) +/* +#define STRN0CPYLOG(dst, src, Name) \ + do { \ + strn0cpy(dst, src, sizeof(dst)); \ + if(strlen(src) >= sizeof(dst)) \ + LOGMSG("WARNING: Setting %s truncated to %s !", Name, dst); \ + } while(0) +*/ + +#define MAX_RECLIST_COLUMNS 4 + +#define COLTYPE_NONE 0 +#define COLTYPE_BLANK 1 +#define COLTYPE_DATE 2 +#define COLTYPE_TIME 3 +#define COLTYPE_DATETIME 4 +#define COLTYPE_LENGTH 5 +#define COLTYPE_RATING 6 +#define COLTYPE_FILE 7 +#define COLTYPE_FILETHENCOMMAND 8 +#define MAX_COLTYPES 9 + + + +static const char * const RecsPerDir_texts[] = { + trNOOP("0-9"), + trNOOP("0-99"), + trNOOP("0-999"), + trNOOP("0-9999"), + trNOOP("0-99999"), + NULL}; + + +typedef struct { + int Type; + char Name[64]; + int Width; + int Align; + char Op1[1024]; + char Op2[1024]; +} RecListColumnType; + + class mySetup { public: mySetup(); - int ShowRecDate; - int ShowRecTime; - int ShowRecLength; - int ShowRecRating; + RecListColumnType RecListColumn[MAX_RECLIST_COLUMNS]; int HideMainMenuEntry; int ReplaceOrgRecMenu; int PatchNew; - int ShowOnlyRecs; int ShowNewRecs; + int RecsPerDir; int DescendSorting; int GoLastReplayed; int ReturnToPlugin; @@ -36,14 +80,12 @@ class myMenuSetup:public cMenuSetupPage { private: const char *sortingtypetexts[2]; - int showrecdate; - int showrectime; - int showreclength; - int showrecrating; + RecListColumnType reclistcolumn[MAX_RECLIST_COLUMNS]; int hidemainmenuentry; int replaceorgrecmenu; int patchnew; int shownewrecs; + int recsperdir; int descendsorting; int golastreplayed; int returntoplugin; @@ -56,4 +98,28 @@ class myMenuSetup:public cMenuSetupPage virtual void Store(); public: myMenuSetup(); +// virtual ~myMenuSetup(); + virtual eOSState ProcessKey(eKeys Key); +}; + +class myMenuSetupColumns:public cOsdMenu +{ + private: + RecListColumnType * preclistcolumns; + const char* ColumnType_descriptions[9]; + const char* AlignmentType_names[3]; + public: + myMenuSetupColumns(RecListColumnType *prlcs); +// virtual ~myMenuSetupColumns(); + virtual void Set(); + virtual eOSState ProcessKey(eKeys Key); }; + +char* IndentMenuItem(const char*, int indentions=1); + +static inline cString Label_SubMenu(const char *Label) { + return cString::sprintf("%s ...", Label); +} +static inline cOsdItem *SubMenuItem(const char *Label, eOSState state) { + return new cOsdItem(Label_SubMenu(Label), state); +} |