Package com.ardor3d.extension.ui

Source Code of com.ardor3d.extension.ui.UIFrameStatusBar$FrameResizeButton

/**
* Copyright (c) 2008-2012 Ardor Labs, Inc.
*
* This file is part of Ardor3D.
*
* Ardor3D is free software: you can redistribute it and/or modify it
* under the terms of its license which may be found in the accompanying
* LICENSE file or at <http://www.ardor3d.com/LICENSE>.
*/

package com.ardor3d.extension.ui;

import com.ardor3d.extension.ui.event.DragListener;
import com.ardor3d.extension.ui.event.FrameResizeListener;
import com.ardor3d.extension.ui.layout.BorderLayout;
import com.ardor3d.extension.ui.layout.BorderLayoutData;
import com.ardor3d.input.InputState;

/**
* This panel extension defines a frame status bar (used at the bottom of a frame) with a text label and resize handle.
*/
public class UIFrameStatusBar extends UIPanel {

    /** Our text label. */
    private final UILabel _statusLabel;

    /** Resize handle, used to drag out this content's size when the frame is set as resizeable. */
    private final FrameResizeButton _resizeButton;

    /** A drag listener used to perform resize operations on this frame. */
    private DragListener _resizeListener = new FrameResizeListener(this);

    /**
     * Construct a new status bar
     */
    public UIFrameStatusBar() {
        super(new BorderLayout());

        _statusLabel = new UILabel("");
        _statusLabel.setLayoutData(BorderLayoutData.CENTER);
        add(_statusLabel);

        _resizeButton = new FrameResizeButton();
        _resizeButton.setLayoutData(BorderLayoutData.EAST);
        add(_resizeButton);
    }

    public FrameResizeButton getResizeButton() {
        return _resizeButton;
    }

    public UILabel getStatusLabel() {
        return _statusLabel;
    }

    @Override
    public void attachedToHud() {
        super.attachedToHud();
        final UIHud hud = getHud();
        if (hud != null) {
            hud.addDragListener(_resizeListener);
        }
    }

    @Override
    public void detachedFromHud() {
        super.detachedFromHud();
        final UIHud hud = getHud();
        if (hud != null) {
            hud.removeDragListener(_resizeListener);
        }
    }

    public void setResizeListener(final DragListener listener) {
        _resizeListener = listener;
    }

    public DragListener getResizeListener() {
        return _resizeListener;
    }

    class FrameResizeButton extends UIButton {

        public FrameResizeButton() {
            super("...");
            _pressedState = new MyPressedState();
            _defaultState = new MyDefaultState();
            _mouseOverState = new MyMouseOverState();
            switchState(_defaultState);
        }

        @Override
        protected void applySkin() {
            ; // keep this from happening by default
        }

        class MyPressedState extends UIButton.PressedState {
            @Override
            public void mouseDeparted(final int mouseX, final int mouseY, final InputState state) {
                super.mouseDeparted(mouseX, mouseY, state);
                // TODO: Reset mouse cursor.
            }
        }

        class MyDefaultState extends UIButton.DefaultState {
            @Override
            public void mouseEntered(final int mouseX, final int mouseY, final InputState state) {
                super.mouseEntered(mouseX, mouseY, state);
                // TODO: Set mouse cursor to resize.
            }

            @Override
            public void mouseDeparted(final int mouseX, final int mouseY, final InputState state) {
                super.mouseDeparted(mouseX, mouseY, state);
                // TODO: Reset mouse cursor.
            }
        }

        class MyMouseOverState extends UIButton.MouseOverState {
            @Override
            public void mouseDeparted(final int mouseX, final int mouseY, final InputState state) {
                super.mouseDeparted(mouseX, mouseY, state);
                // TODO: Reset mouse cursor.
            }
        }
    }
}
TOP

Related Classes of com.ardor3d.extension.ui.UIFrameStatusBar$FrameResizeButton

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.