示例#1
0
  private void setTheme(Theme theme) {
    if (theme == null) return;

    Sui.setTheme(theme);

    colors[0] = theme.getActiveTitleBar1();
    colors[1] = theme.getActiveTitleBar2();
    colors[2] = theme.getBackground();
    colors[3] = theme.getDisabledMask();
    colors[4] = theme.getForeground();
    colors[5] = theme.getPrimary1();
    colors[6] = theme.getPrimary2();
    colors[7] = theme.getPrimary3();
    colors[8] = theme.getPrimaryBorder1();
    colors[9] = theme.getPrimaryBorder2();
    colors[10] = theme.getSecondary1();
    colors[11] = theme.getSecondary2();
    colors[12] = theme.getSecondary3();
    colors[13] = theme.getSecondaryBorder1();
    colors[14] = theme.getSecondaryBorder2();
    colors[15] = theme.getTitleBar1();
    colors[16] = theme.getTitleBar2();

    for (int i = 0; i < labels.length; i++) {
      Color c = colors[i];
      labels[i].setBackground(new Color(c.r, c.g, c.b, c.a));
      methodNames[i].setBackground(theme.getBackground());
      methodNames[i].setForeground(theme.getForeground());
    }
    nameLabel.setForeground(theme.getForeground());
    nameLabel.setText(theme.getName());

    Sui.updateComponentTreeTheme(display);
  }
示例#2
0
  public void initStatesList(GameContainer container) throws SlickException {
    Sui.setTheme(new BitterLemonTheme());
    SimpleSkin.setRoundRectanglesEnabled(true);
    singleton = new Display(container);
    singleton.setSendingGlobalEvents(false);

    Frame window = new Frame("Singleton Window");
    window.setSize(200, 150);
    window.setLocation(100, 100);
    window.setVisible(true);

    final CheckBox box = new CheckBox("Are you sure?");
    box.pack();
    box.setLocation(10, 25);
    window.add(box);
    window.setMinimumSize(150, 70);

    singletonWindows.add(window);
    singleton.add(window);

    this.addState(new State1());
    this.addState(new State2());
    this.addState(new State3());
  }
示例#3
0
  public void init(GameContainer container) throws SlickException {
    // Sui.setSkin(new WireframeSkin());
    display = new Display(container);
    display.setSendingGlobalEvents(false);
    display.setFocusable(true);

    // setup method names
    Method[] m = Theme.class.getMethods();
    Arrays.sort(
        m,
        new Comparator() {
          public int compare(Object o1, Object o2) {
            return ((Method) o1).getName().compareTo(((Method) o2).getName());
          }
        });
    ArrayList list = new ArrayList(COLORS);
    for (int i = 0; i < m.length; i++) {
      String nameStr = m[i].getName();
      if (nameStr.indexOf("getName") == -1) list.add(nameStr);
    }
    methods = (String[]) list.toArray(new String[list.size()]);

    // dump names
    // for (int i=0;i<methods.length;i++) {
    //    System.out.println("private color
    // "+Character.toLowerCase(methods[i].charAt(3))+methods[i].substring(4)+" =");
    // }

    // dump methods
    // for (int i=0;i<methods.length;i++) {
    //    String var = Character.toLowerCase(methods[i].charAt(3))+methods[i].substring(4);
    //    System.out.println("public Color "+methods[i]+"() { return "+var+"; }");
    // }

    class BorderLabel extends Label {
      public void renderComponent(GUIContext c, Graphics g) {
        super.renderComponent(c, g);
        g.setColor(Color.darkGray);
        g.draw(this.getAbsoluteBounds());
      }
    };

    float startx = 280;
    float starty = 70;

    Container parent = display;
    for (int i = 0; i < labels.length; i++) {
      methodNames[i] = new BorderLabel();
      methodNames[i].setText(methods[i]);
      methodNames[i].setSize(155, 25);
      methodNames[i].setOpaque(true);
      methodNames[i].setLocation(startx, starty + i * (methodNames[i].getHeight() + 5));
      parent.add(methodNames[i]);

      labels[i] = new BorderLabel();
      labels[i].setOpaque(true);
      labels[i].setSize(65, 25);
      labels[i].setLocation(
          startx + methodNames[i].getWidth() + 5, starty + i * (labels[i].getHeight() + 5));
      parent.add(labels[i]);
    }

    Container panel = new Container();

    left = new Button("Previous");
    left.pack();
    left.setRequestFocusEnabled(false);
    left.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            if (currentIndex > 0) {
              currentIndex--;
              setTheme((Theme) themes.get(currentIndex));
              updateButtons();
            }
          }
        });
    panel.add(left);

    right = new Button("Next");
    right.pack();
    right.setRequestFocusEnabled(false);
    right.setX(left.getWidth() + 5);
    right.setHeight(left.getHeight());
    right.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            if (currentIndex < themes.size() - 1) {
              currentIndex++;
              setTheme((Theme) themes.get(currentIndex));
              updateButtons();
            }
          }
        });
    panel.add(right);

    panel.setSize(right.getX() + right.getWidth(), left.getHeight());
    panel.setLocationRelativeTo(display);
    panel.setY(starty - panel.getHeight() - 5);
    display.add(panel);

    nameLabel = new Label("No themes found.");
    nameLabel.pack();
    nameLabel.setLocationRelativeTo(display);
    nameLabel.setY(panel.getY() - nameLabel.getHeight() - 5);
    display.add(nameLabel);

    final CheckBox box = new CheckBox("Show Demo Box");

    demoBox = new DemoFrame();
    demoBox.setLocation(50, 100);
    demoBox
        .getCloseButton()
        .addActionListener(
            new ActionListener() {
              public void actionPerformed(ActionEvent e) {
                box.setSelected(false);
              }
            });
    display.add(demoBox);

    box.pack();
    box.setX(demoBox.getX());
    box.setY(demoBox.getY() - box.getHeight() - 5);
    box.setSelected(true);
    box.addActionListener(
        new ActionListener() {
          public void actionPerformed(ActionEvent e) {
            demoBox.setVisible(box.isSelected());
          }
        });
    box.setRequestFocusEnabled(false);
    display.add(box);

    if (Sui.getSkin() instanceof SimpleSkin) {
      final CheckBox roundBox = new CheckBox("Round Rectangles");
      roundBox.pack();
      roundBox.setSelected(true);
      SimpleSkin.setRoundRectanglesEnabled(roundBox.isSelected());

      roundBox.addActionListener(
          new ActionListener() {
            public void actionPerformed(ActionEvent e) {
              SimpleSkin.setRoundRectanglesEnabled(roundBox.isSelected());
            }
          });

      box.setWidth(Math.max(roundBox.getWidth(), box.getWidth()));
      roundBox.setWidth(Math.max(roundBox.getWidth(), box.getWidth()));
      roundBox.setLocation(box.getX(), box.getY() - roundBox.getHeight() - 5);
      roundBox.setRequestFocusEnabled(false);
      display.add(roundBox);
    }

    // load up the themes
    populateThemes();

    if (!themes.isEmpty()) {
      setTheme((Theme) themes.get(0));
    }
    updateButtons();
  }