1
0
Fork 0
mirror of https://github.com/geometer/FBReaderJ.git synced 2025-10-03 09:49:19 +02:00

git-svn-id: https://only.mawhrin.net/repos/FBReaderJ/trunk@113 6a642e6f-84f6-412e-ac94-c4a38d5a04b0

This commit is contained in:
MarinaSokol 2007-11-12 13:29:16 +00:00
parent ead7360026
commit fca386d7df
2 changed files with 134 additions and 31 deletions

View file

@ -63,7 +63,7 @@ public abstract class ZLApplication extends ZLApplicationBase {
ConfigAutoSavingOption = new ZLBooleanOption(ZLOption.CONFIG_CATEGORY, CONFIG, AUTO_SAVE, true);
ConfigAutoSaveTimeoutOption = new ZLIntegerRangeOption(ZLOption.CONFIG_CATEGORY, CONFIG, TIMEOUT, 1, 6000, 30);
KeyDelayOption = new ZLIntegerRangeOption(ZLOption.CONFIG_CATEGORY, "Options", "KeyDelay", 0, 5000, 250);
myViewWidget = null;
setMyViewWidget(null);
myWindow = null;
if (ConfigAutoSavingOption.getValue()) {
//ZLOption.startAutoSave((int)(ConfigAutoSaveTimeoutOption.getValue()));
@ -73,11 +73,11 @@ public abstract class ZLApplication extends ZLApplicationBase {
//ZLCommunicationManager.instance().registerHandler("present", myPresentWindowHandler);
}
public Toolbar toolbar() {
public Toolbar getToolbar() {
return this.myToolbar;
}
public Menubar menubar() {
public Menubar getMenubar() {
return this.myMenubar;
}
@ -87,8 +87,8 @@ public abstract class ZLApplication extends ZLApplicationBase {
return;
}
if (myViewWidget != null) {
myViewWidget.setView(view);
if (getMyViewWidget() != null) {
getMyViewWidget().setView(view);
resetWindowCaption();
refreshWindow();
} else {
@ -97,7 +97,7 @@ public abstract class ZLApplication extends ZLApplicationBase {
}
protected ZLView getCurrentView() {
return (myViewWidget != null) ? myViewWidget.getView() : null;
return (getMyViewWidget() != null) ? getMyViewWidget().getView() : null;
}
protected void quit() {
@ -111,7 +111,7 @@ public abstract class ZLApplication extends ZLApplicationBase {
}
public void initWindow() {
myViewWidget = myWindow.createViewWidget();
setMyViewWidget(myWindow.createViewWidget());
myWindow.init();
setView(myInitialView);
@ -129,7 +129,7 @@ public abstract class ZLApplication extends ZLApplicationBase {
}
public void refreshWindow() {
if (myViewWidget != null) {
if (getMyViewWidget() != null) {
//myViewWidget.repaint();
}
if (myWindow != null) {
@ -184,8 +184,8 @@ public abstract class ZLApplication extends ZLApplicationBase {
}
public void trackStylus(boolean track) {
if (myViewWidget != null) {
myViewWidget.trackStylus(track);
if (getMyViewWidget() != null) {
getMyViewWidget().trackStylus(track);
}
}
@ -195,23 +195,23 @@ public abstract class ZLApplication extends ZLApplicationBase {
}
}
public Action action(int actionId) {
public Action getAction(int actionId) {
return myActionMap.get(actionId);
}
public boolean isActionVisible(int actionId) {
Action a = action(actionId);
Action a = getAction(actionId);
return ((a != null) && a.isVisible());
}
public boolean isActionEnabled(int actionId) {
Action action = action(actionId);
Action action = getAction(actionId);
return (action != null) && action.isEnabled();
}
public void doAction(int actionId) {
Action action = action(actionId);
Action action = getAction(actionId);
if (action != null) {
action.checkAndRun();
}
@ -220,7 +220,7 @@ public abstract class ZLApplication extends ZLApplicationBase {
abstract public ZLKeyBindings keyBindings();
public void doActionByKey(String key) {
Action a = action(keyBindings().getBinding(key));
Action a = getAction(keyBindings().getBinding(key));
if ((a != null) &&
(!a.useKeyDelay() /*||
(myLastKeyActionTime.millisecondsTo(ZLTime()) >= KeyDelayOption.getValue())*/)) {
@ -250,5 +250,13 @@ public abstract class ZLApplication extends ZLApplicationBase {
public void resetLastCaller() {
//((PresentWindowHandler)myPresentWindowHandler).resetLastCaller();
}
public void setMyViewWidget(ZLViewWidget myViewWidget) {
this.myViewWidget = myViewWidget;
}
public ZLViewWidget getMyViewWidget() {
return myViewWidget;
}
}

View file

@ -1,42 +1,137 @@
package org.zlibrary.core.application;
import java.util.List;
import java.util.Set;
import org.zlibrary.core.application.toolbar.ButtonGroup;
import org.zlibrary.core.application.toolbar.ButtonItem;
import org.zlibrary.core.application.toolbar.Item;
import org.zlibrary.core.view.ZLViewWidget;
abstract public class ZLApplicationWindow {
private ZLApplication myApplication;
private boolean myToggleButtonLock;
protected ZLApplicationWindow(ZLApplication application) {
myApplication = application;
myApplication.setWindow(this);
myToggleButtonLock = false;
}
public ZLApplication application() {
return myApplication;
}
abstract public void init();
public void init() {
myApplication.setMyViewWidget(createViewWidget());
List<Item> toolbarItems = myApplication.getToolbar().items();
for (Item item: toolbarItems) {
addToolbarItem(item);
}
initMenu();
}
abstract public void initMenu();
/*
void onButtonPress(ZLApplication::Toolbar::ButtonItem &button);
// TODO: change to pure virtual
virtual void setToggleButtonState(const ZLApplication::Toolbar::ButtonItem&) {}
// TODO: change to pure virtual
virtual void setToolbarItemState(ZLApplication::Toolbar::ItemPtr item, bool visible, bool enabled) {}
*/
public void onButtonPress(ButtonItem button) {
if (myToggleButtonLock) {
return;
}
if (button.isToggleButton()) {
myToggleButtonLock = true;
if (button.isPressed()) {
setToggleButtonState(button);
myToggleButtonLock = false;
return;
} else {
button.press();
ButtonGroup group = button.buttonGroup();
Set<ButtonItem> items = group.Items;
for (ButtonItem bitem: items) {
setToggleButtonState(bitem);
}
}
myToggleButtonLock = false;
}
application().doAction(button.actionId());
}
public abstract void setToggleButtonState(ButtonItem item);
public abstract void setToolbarItemState(Item item, boolean visible, boolean enabled);
abstract protected ZLViewWidget createViewWidget();
/*
virtual void addToolbarItem(ZLApplication::Toolbar::ItemPtr item) = 0;
abstract public void addToolbarItem(Item item);
// TODO: change to non-virtual (?)
virtual void refresh();
public void refresh() {
/*
List<Item> items = application().getToolbar().items();
boolean enableToolbarSpace = false;
Item lastSeparator = null;
for (Item item: items) {
switch (item.type()) {
case ItemType.OPTION_ENTRY:
{
boolean visible = ((Toolbar.OptionEntryItem)**it).entry()->isVisible();
if (visible) {
if (!lastSeparator.isNull()) {
setToolbarItemState(lastSeparator, true, true);
lastSeparator = 0;
}
enableToolbarSpace = true;
}
setToolbarItemState(*it, visible, true);
}
break;
case ZLApplication::Toolbar::Item::BUTTON:
{
const ZLApplication::Toolbar::ButtonItem &button = (const ZLApplication::Toolbar::ButtonItem&)**it;
int id = button.actionId();
const bool visible = application().isActionVisible(id);
const bool enabled = application().isActionEnabled(id);
if (visible) {
if (!lastSeparator.isNull()) {
setToolbarItemState(lastSeparator, true, true);
lastSeparator = 0;
}
enableToolbarSpace = true;
}
if (!enabled && button.isPressed()) {
shared_ptr<ZLApplication::Toolbar::ButtonGroup> group = button.buttonGroup();
group->press(0);
application().doAction(group->UnselectAllButtonsActionId);
myToggleButtonLock = true;
setToggleButtonState(button);
myToggleButtonLock = false;
}
setToolbarItemState(*it, visible, enabled);
}
break;
case ZLApplication::Toolbar::Item::SEPARATOR:
if (enableToolbarSpace) {
lastSeparator = *it;
enableToolbarSpace = false;
} else {
setToolbarItemState(*it, false, true);
}
break;
}
}
if (!lastSeparator.isNull()) {
setToolbarItemState(lastSeparator, false, true);
}*/
}
// TODO: change to pure virtual
virtual void present() {}
//virtual void present() {}
virtual void close() = 0;
*/
//virtual void close() = 0;
//*/
abstract public void setCaption(String caption);