git-svn-id: svn://ultimatepp.org/upp/trunk@15707 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
cxl 2021-01-25 20:42:02 +00:00
parent aa8311a9c3
commit 03009a8790
4 changed files with 0 additions and 305 deletions

View file

@ -1,52 +0,0 @@
#ifndef _FileTabsExample_FileTabsExample_h
#define _FileTabsExample_FileTabsExample_h
#include <CtrlLib/CtrlLib.h>
#include <TabBar/TabBar.h>
using namespace Upp;
#define LAYOUTFILE <FileTabsExample/FileTabsExample.lay>
#include <CtrlCore/lay.h>
class FileTabsExample : public WithFileTabsExampleLayout<TopWindow> {
private:
FileTabs bar[4];
String barbackup;
public:
typedef FileTabsExample CLASSNAME;
FileTabsExample();
// TabBar events
void OnCursor();
bool OnCloseConfirm(Value v);
bool OnCloseAllConfirm();
// Buttons
void OnAdd();
void OnInsert();
// Options
void OnGrouping();
void OnGroupSort();
void OnValueSort();
void OnKeySort();
void OnSeparators();
void OnStacking();
void OnStackSort();
void OnIcons();
void OnPrompt();
void OnAllAlign();
void OnInactive();
// Ctrl overloads
virtual bool Key(dword key, int count);
virtual void DragAndDrop(Point p, PasteClip& d);
struct MyValueOrder : public ValueOrder
{
virtual bool operator()(const Value& a, const Value& b) const { return (Random()%2); }
};
StdValueOrder vo;
MyValueOrder myvo;
};
#endif

View file

@ -1,23 +0,0 @@
LAYOUT(FileTabsExampleLayout, 660, 348)
ITEM(EditString, fileinput, HSizePosZ(8, 72).TopPosZ(44, 20))
ITEM(Button, addfile, SetLabel(t_("Add")).RightPosZ(4, 64).TopPosZ(44, 20))
ITEM(Option, grouping, SetLabel(t_("Group tabs")).LeftPosZ(8, 132).TopPosZ(84, 16))
ITEM(Option, keysort, SetLabel(t_("Sort tabs by key")).LeftPosZ(416, 132).TopPosZ(104, 16))
ITEM(Option, valuesort, SetLabel(t_("Sort tabs by value")).LeftPosZ(416, 132).TopPosZ(84, 16))
ITEM(Option, stacksort, SetLabel(t_("Sort stacks")).LeftPosZ(144, 132).TopPosZ(104, 16))
ITEM(Option, groupsort, SetLabel(t_("Sort tabs by group")).LeftPosZ(8, 132).TopPosZ(104, 16))
ITEM(Option, separators, SetLabel(t_("Visually seperate groups")).LeftPosZ(8, 132).TopPosZ(124, 16))
ITEM(Option, stacking, SetLabel(t_("Stack tabs")).LeftPosZ(144, 132).TopPosZ(84, 16))
ITEM(Option, normalicons, SetLabel(t_("Icons for normal tabs")).LeftPosZ(144, 132).TopPosZ(124, 16))
ITEM(Option, stackedicons, SetLabel(t_("Icons for stacked tabs")).LeftPosZ(144, 132).TopPosZ(144, 16))
ITEM(Option, prompt, SetLabel(t_("Prompt before tab close")).LeftPosZ(280, 132).TopPosZ(84, 16))
ITEM(Option, inactive, SetLabel(t_("Show inactive tabs")).LeftPosZ(280, 132).TopPosZ(124, 16))
ITEM(Option, allalign, SetLabel(t_("Show all alignments")).LeftPosZ(280, 132).TopPosZ(104, 16))
ITEM(LabelBox, dv___14, SetLabel(t_("Options")).HSizePosZ(4, 0).TopPosZ(68, 96))
ITEM(Label, selection, HSizePosZ(4, 4).TopPosZ(184, 19))
ITEM(Label, dv___16, SetLabel(t_("Selected file (form top bar only):")).HSizePosZ(4, 4).TopPosZ(164, 19))
ITEM(LabelBox, dv___17, SetLabel(t_("Add Files")).HSizePosZ(4, 0).TopPosZ(0, 68))
ITEM(Label, dv___18, SetLabel(t_("- Drag files onto this window\n- Enter full paths below (files do not need to exist)")).HSizePosZ(8, 4).TopPosZ(12, 32))
ITEM(Button, insert, SetLabel(t_("Insert")).LeftPosZ(4, 64).BottomPosZ(5, 24))
END_LAYOUT

View file

@ -1,12 +0,0 @@
uses
CtrlLib,
TabBar;
file
FileTabsExample.h,
main.cpp,
FileTabsExample.lay;
mainconfig
"" = "GUI";

View file

@ -1,218 +0,0 @@
#include "FileTabsExample.h"
#define FILE_LIMIT 5
#define PACKAGE_LIMIT 5
FileTabsExample::FileTabsExample()
{
CtrlLayout(*this, "FileTabs Example");
Sizeable().Zoomable();
for (int i = 0; i < 4; i++)
bar[i].SetAlign((i+1) % 4);
AddFrame(bar[0]);
bar[0] <<= THISBACK(OnCursor);
addfile <<= THISBACK(OnAdd);
insert <<= THISBACK(OnInsert);
grouping <<= THISBACK(OnGrouping);
groupsort <<= THISBACK(OnGroupSort);
separators <<= THISBACK(OnSeparators);
stacking <<= THISBACK(OnStacking);
normalicons <<= THISBACK(OnIcons);
stackedicons <<= THISBACK(OnIcons);
prompt <<= THISBACK(OnPrompt);
allalign <<= THISBACK(OnAllAlign);
valuesort <<= THISBACK(OnValueSort);
keysort <<= THISBACK(OnKeySort);
grouping <<= true;
inactive <<= true;
normalicons <<= true;
OnInsert();
OnCursor();
}
void FileTabsExample::OnCursor()
{
if (bar[0].HasCursor())
selection = (String)~bar[0];
else
selection = "No tab selected";
}
void FileTabsExample::OnInsert()
{
Vector<String> files;
files.Add("C:\\uppsvn\\bazaar\\TabBar\\FileTabs.h");
files.Add("C:\\uppsvn\\bazaar\\TabBar\\TabBar.cpp");
files.Add("C:\\uppsvn\\bazaar\\TabBar\\TabBar.h");
files.Add("C:\\uppsvn\\bazaar\\TabBar\\TabBar.iml");
files.Add("C:\\uppsvn\\bazaar\\TabBar\\TabBar.upp");
files.Add("C:\\uppsvn\\bazaar\\TabBar\\FileTabs.cpp");
files.Add("C:\\uppsvn\\bazaar\\UppDocking\\Docking.lay");
files.Add("C:\\uppsvn\\bazaar\\UppDocking\\Docking.t");
files.Add("C:\\uppsvn\\bazaar\\UppDocking\\DockTabBar.cpp");
files.Add("C:\\uppsvn\\bazaar\\UppDocking\\DockTabBar.h");
files.Add("C:\\uppsvn\\bazaar\\UppDocking\\DockMenu.cpp");
files.Add("C:\\uppsvn\\bazaar\\UppDocking\\DockMenu.h");
files.Add("C:\\uppsvn\\bazaar\\UppDocking\\DockPane.cpp");
files.Add("C:\\uppsvn\\bazaar\\UppDocking\\DockWindow.cpp");
files.Add("C:\\uppsvn\\bazaar\\UppDocking\\Docking.h");
files.Add("C:\\uppsvn\\bazaar\\UppDocking\\Docking.upp");
files.Add("C:\\uppsvn\\bazaar\\UppDocking\\DockPane.h");
files.Add("C:\\uppsvn\\bazaar\\UppDocking\\DockableCtrl.cpp");
files.Add("C:\\uppsvn\\bazaar\\UppDocking\\DockableCtrl.h");
files.Add("C:\\uppsvn\\bazaar\\UppDocking\\DockConfig.cpp");
files.Add("C:\\uppsvn\\bazaar\\UppDocking\\DockCont.cpp");
files.Add("C:\\uppsvn\\bazaar\\UppDocking\\DockCont.h");
files.Add("C:\\uppsvn\\bazaar\\UppDocking\\Docking.iml");
files.Add("C:\\uppsvn\\bazaar\\FileTabsExample\\FileTabsExample.h");
files.Add("C:\\uppsvn\\bazaar\\FileTabsExample\\FileTabsExample.lay");
files.Add("C:\\uppsvn\\bazaar\\FileTabsExample\\FileTabsExample.upp");
files.Add("C:\\uppsvn\\bazaar\\FileTabsExample\\main.cpp");
for (int i = 0; i < 4; i++)
bar[i].AddFiles(files, false);
}
bool FileTabsExample::OnCloseConfirm(Value v)
{
return PromptOKCancel(Format("Close '%s'?", DeQtf((String)v))) == 0;
}
bool FileTabsExample::OnCloseAllConfirm()
{
return PromptOKCancel("Close all tabs?") == 0;
}
void FileTabsExample::OnAdd()
{
if (!fileinput.GetLength()) return;
for (int i = 0; i < 4; i++)
bar[i].AddFile(~fileinput);
}
void FileTabsExample::OnGrouping()
{
for (int i = 0; i < 4; i++)
bar[i].Grouping(~grouping);
}
void FileTabsExample::OnGroupSort()
{
if(~groupsort)
for (int i = 0; i < 4; i++)
bar[i].SortGroups(true); //or specify own TabSort
else
for (int i = 0; i < 4; i++)
bar[i].SortGroups(false);
}
void FileTabsExample::OnSeparators()
{
for (int i = 0; i < 4; i++)
bar[i].GroupSeparators(~separators);
}
void FileTabsExample::OnStacking()
{
for (int i = 0; i < 4; i++)
bar[i].Stacking(~stacking);
}
void FileTabsExample::OnStackSort()
{
if(~stacksort)
for (int i = 0; i < 4; i++)
bar[i].SortStacks(true); //or specify own TabSort
else
for (int i = 0; i < 4; i++)
bar[i].SortStacks(false);
}
void FileTabsExample::OnIcons()
{
for (int i = 0; i < 4; i++)
bar[i].FileIcons(~normalicons, ~stackedicons);
}
void FileTabsExample::OnPrompt()
{
if (prompt) {
bar[0].CancelClose = THISBACK(OnCloseConfirm);
bar[0].CancelCloseAll = THISBACK(OnCloseAllConfirm);
}
else {
bar[0].CancelClose.Clear();
bar[0].CancelCloseAll.Clear();
}
}
void FileTabsExample::OnAllAlign()
{
if (allalign) {
for (int i = 1; i < 4; i++)
AddFrame(bar[i]);
}
else {
for (int i = 0; i < 4; i++)
bar[i].Remove();
ClearFrames();
AddFrame(bar[0]);
}
}
void FileTabsExample::OnInactive()
{
for (int i = 1; i < 4; i++)
bar[i].InactiveDisabled(~inactive);
}
void FileTabsExample::OnValueSort()
{
keysort = false;
if(~valuesort)
for (int i = 0; i < 4; i++)
bar[i].SortTabValues(vo);
else
for (int i = 0; i < 4; i++)
bar[i].SortTabs(false);
}
void FileTabsExample::OnKeySort()
{
valuesort = false;
if(~keysort)
for (int i = 0; i < 4; i++)
bar[i].SortTabKeys(vo);
else
for (int i = 0; i < 4; i++)
bar[i].SortTabs(false);
}
bool FileTabsExample::Key(dword key, int count)
{
if (key == K_RETURN && fileinput.HasFocus()) {
addfile.PseudoPush();
return true;
}
return false;
}
void FileTabsExample::DragAndDrop(Point p, PasteClip& d)
{
if (AcceptFiles(d))
for (int i = 0; i < 4; i++)
bar[i].AddFiles(GetFiles(d));
}
GUI_APP_MAIN
{
FileTabsExample().Run();
}