6e8fbca745
match the genesis editor version 1.3.0.653.
367 lines
14 KiB
C#
367 lines
14 KiB
C#
/****************************************************************************
|
||
Copyright (c) 2011-2013,WebJet Business Division,CYOU
|
||
|
||
http://www.genesis-3d.com.cn
|
||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||
of this software and associated documentation files (the "Software"), to deal
|
||
in the Software without restriction, including without limitation the rights
|
||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||
copies of the Software, and to permit persons to whom the Software is
|
||
furnished to do so, subject to the following conditions:
|
||
|
||
The above copyright notice and this permission notice shall be included in
|
||
all copies or substantial portions of the Software.
|
||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||
THE SOFTWARE.
|
||
****************************************************************************/
|
||
using System;
|
||
using System.Collections.Generic;
|
||
using System.Text;
|
||
using System.Runtime.CompilerServices;
|
||
namespace ScriptGUI
|
||
{
|
||
internal class ImageBox : Widget
|
||
{
|
||
internal ImageBox(Instance inst, FString name, Layout parent)
|
||
: base(inst, name, parent, WidgetType.ImageBox)
|
||
{
|
||
|
||
}
|
||
internal ImageBox(Instance inst, FString name, Layout parent, WidgetType type)
|
||
: base(inst, name, parent, type)
|
||
{
|
||
|
||
}
|
||
|
||
//------------------------------------------------------------------------------//
|
||
// The interface with support of resources
|
||
//------------------------------------------------------------------------------//
|
||
/** Select current items resource used in ImageBox
|
||
@param _name Resource name
|
||
@return false if resource with such name not exist
|
||
*/
|
||
internal bool SetItemResource(string name)
|
||
{
|
||
return ICall_setItemResource(mInstance.Ptr, name);
|
||
}
|
||
/** Select current item group */
|
||
internal void SetItemGroup(string name)
|
||
{
|
||
ICall_setItemGroup(mInstance.Ptr, name);
|
||
}
|
||
/** Select current item mane */
|
||
internal void SetItemName(string name)
|
||
{
|
||
ICall_setItemName(mInstance.Ptr, name);
|
||
}
|
||
|
||
//------------------------------------------------------------------------------//
|
||
// The simple interface
|
||
//------------------------------------------------------------------------------//
|
||
|
||
/* Set texture and size of image _tile
|
||
@param _texture file name or texture name
|
||
@param _coord - part of texture where we take tiles
|
||
@param _tile size
|
||
*/
|
||
internal void SetImageInfo(string texture, IntCoord coord, IntSize tile)
|
||
{
|
||
ICall_setImageInfo(mInstance.Ptr, texture, ref coord, ref tile);
|
||
}
|
||
|
||
/* Set texture
|
||
@param _texture file name or texture name
|
||
*/
|
||
internal void SetImageTexture(string value)
|
||
{
|
||
ICall_setImageTexture(mInstance.Ptr, value);
|
||
}
|
||
|
||
/** Set _rect - part of texture where we take tiles */
|
||
internal void SetImageRect(IntRect value)
|
||
{
|
||
ICall_setImageRect(mInstance.Ptr, ref value);
|
||
}
|
||
|
||
/** Set _coord - part of texture where we take tiles */
|
||
internal void SetImageCoord(IntCoord value)
|
||
{
|
||
ICall_setImageCoord(mInstance.Ptr, ref value);
|
||
}
|
||
|
||
/** Set _tile size */
|
||
internal void SetImageTile(IntSize value)
|
||
{
|
||
ICall_setImageTile(mInstance.Ptr, ref value);
|
||
}
|
||
|
||
/** Set current tile index
|
||
@param index - tile index
|
||
@remarks Tiles in file start numbering from left to right and from top to bottom.
|
||
\n For example:\n
|
||
<pre>
|
||
+---+---+---+
|
||
| 0 | 1 | 2 |
|
||
+---+---+---+
|
||
| 3 | 4 | 5 |
|
||
+---+---+---+
|
||
</pre>
|
||
*/
|
||
internal void SetImageIndex(int index)
|
||
{
|
||
ICall_setImageIndex(mInstance.Ptr, (uint)index);
|
||
}
|
||
/** Get current tile index */
|
||
internal int GetImageIndex()
|
||
{
|
||
return (int)ICall_getImageIndex(mInstance.Ptr);
|
||
}
|
||
|
||
|
||
//------------------------------------------------------------------------------//
|
||
// The expanded interface
|
||
//------------------------------------------------------------------------------//
|
||
|
||
//! Get number of items
|
||
internal int GetItemCount()
|
||
{
|
||
return (int)ICall_getItemCount(mInstance.Ptr);
|
||
}
|
||
|
||
//! Select specified index
|
||
internal void SetItemSelect(int index)
|
||
{
|
||
ICall_setItemSelect(mInstance.Ptr, (uint)index);
|
||
}
|
||
//! Get index of selected item (ITEM_NONE if none selected)
|
||
internal int GetItemSelect()
|
||
{
|
||
uint temp = ICall_getItemSelect(mInstance.Ptr);
|
||
|
||
return (temp >= int.MaxValue) ? -1 : (int)temp;
|
||
}
|
||
//! Reset item selection
|
||
internal void ResetItemSelect()
|
||
{
|
||
ICall_resetItemSelect(mInstance.Ptr);
|
||
}
|
||
|
||
//! Insert an item into a list at a specified position
|
||
internal void InsertItem(int index, IntCoord item)
|
||
{
|
||
ICall_insertItem(mInstance.Ptr, (uint)index, ref item);
|
||
}
|
||
//! Add an item to the end of a list
|
||
internal void AddItem(IntCoord item)
|
||
{
|
||
ICall_addItem(mInstance.Ptr, ref item);
|
||
}
|
||
//! Replace an item at a specified position
|
||
internal void SetItem(int index, IntCoord item)
|
||
{
|
||
ICall_setItem(mInstance.Ptr, (uint)index, ref item);
|
||
}
|
||
|
||
//! Delete item at a specified position
|
||
internal void DeleteItem(int index)
|
||
{
|
||
ICall_deleteItem(mInstance.Ptr, (uint)index);
|
||
}
|
||
//! Delete all items
|
||
internal void DeleteAllItems()
|
||
{
|
||
ICall_deleteAllItems(mInstance.Ptr);
|
||
}
|
||
|
||
// работа с фреймами анимированных индексов
|
||
/** Add frame
|
||
@param index Image item index
|
||
@param _item Frame coordinates at image texture
|
||
*/
|
||
internal void AddItemFrame(int index, IntCoord item)
|
||
{
|
||
ICall_addItemFrame(mInstance.Ptr, (uint)index,ref item);
|
||
}
|
||
|
||
/** Insert frame
|
||
@param index Image item index
|
||
@param indexFrame Frame index where we insert frame
|
||
@param _item Frame coordinates at image texture
|
||
*/
|
||
internal void InsertItemFrame(int index, int indexFrame, IntCoord item)
|
||
{
|
||
ICall_insertItemFrame(mInstance.Ptr, (uint)index, (uint)indexFrame, ref item);
|
||
}
|
||
|
||
/** Add copy of frame (similar to ImageBox::addItemFrame but we copy frame coordinates)
|
||
@param index Image item index
|
||
@param indexSourceFrame Frame index of frame that we copying
|
||
*/
|
||
internal void AddItemFrameDublicate(int index, int indexSourceFrame)
|
||
{
|
||
ICall_addItemFrameDublicate(mInstance.Ptr, (uint)index, (uint)indexSourceFrame);
|
||
}
|
||
|
||
/** Insert copy of frame (similar to ImageBox::insertItemFrame but we copy frame coordinates)
|
||
@param index Image item index
|
||
@param indexFrame Frame index where we insert frame
|
||
@param indexSourceFrame Frame index of frame that we copying
|
||
*/
|
||
internal void InsertItemFrameDublicate(int index, int indexFrame, int indexSourceFrame)
|
||
{
|
||
ICall_insertItemFrameDublicate(mInstance.Ptr, (uint)index, (uint)indexFrame, (uint)indexSourceFrame);
|
||
}
|
||
|
||
/** Change frame
|
||
@param index Image item index
|
||
@param indexFrame Frame index to change
|
||
@param _item Frame coordinates at image texture
|
||
*/
|
||
internal void SetItemFrame(int index, int indexFrame, IntCoord item)
|
||
{
|
||
ICall_setItemFrame(mInstance.Ptr, (uint)index, (uint)indexFrame, ref item);
|
||
}
|
||
|
||
/** Delete frame
|
||
@param index Image item index
|
||
@param indexFrame Frame index that we delete
|
||
*/
|
||
internal void DeleteItemFrame(int index, int indexFrame)
|
||
{
|
||
ICall_deleteItemFrame(mInstance.Ptr, (uint)index, (uint)indexFrame);
|
||
}
|
||
|
||
/** Delete all frames
|
||
@param index Image item index
|
||
*/
|
||
internal void DeleteAllItemFrames(int index)
|
||
{
|
||
ICall_deleteAllItemFrames(mInstance.Ptr, (uint)index);
|
||
}
|
||
|
||
/** Set item frame rate
|
||
@param index Image item index
|
||
@param _rate Duration of one frame in seconds
|
||
*/
|
||
internal void SetItemFrameRate(int index, float rate)
|
||
{
|
||
ICall_setItemFrameRate(mInstance.Ptr, (uint)index, rate);
|
||
}
|
||
|
||
/** Get item frame rate
|
||
@param index Image item index
|
||
*/
|
||
internal float GetItemFrameRate(int index)
|
||
{
|
||
return ICall_getItemFrameRate(mInstance.Ptr, (uint)index);
|
||
}
|
||
|
||
|
||
|
||
[MethodImplAttribute(MethodImplOptions.InternalCall)]
|
||
extern private static bool ICall_setItemResource(IntPtr widget_ptr, String value);
|
||
|
||
[MethodImplAttribute(MethodImplOptions.InternalCall)]
|
||
extern private static void ICall_setItemGroup(IntPtr widget_ptr, String value);
|
||
|
||
[MethodImplAttribute(MethodImplOptions.InternalCall)]
|
||
extern private static void ICall_setItemName(IntPtr widget_ptr, String value);
|
||
|
||
|
||
[MethodImplAttribute(MethodImplOptions.InternalCall)]
|
||
extern private static void ICall_setImageInfo(IntPtr widget_ptr, String texture, ref IntCoord coord, ref IntSize tile);
|
||
|
||
[MethodImplAttribute(MethodImplOptions.InternalCall)]
|
||
extern private static void ICall_setImageTexture(IntPtr widget_ptr, String texture);
|
||
|
||
[MethodImplAttribute(MethodImplOptions.InternalCall)]
|
||
extern private static void ICall_setImageRect(IntPtr widget_ptr, ref IntRect value);
|
||
|
||
[MethodImplAttribute(MethodImplOptions.InternalCall)]
|
||
extern private static void ICall_setImageCoord(IntPtr widget_ptr, ref IntCoord coord);
|
||
|
||
[MethodImplAttribute(MethodImplOptions.InternalCall)]
|
||
extern private static void ICall_setImageTile(IntPtr widget_ptr, ref IntSize tile);
|
||
|
||
[MethodImplAttribute(MethodImplOptions.InternalCall)]
|
||
extern private static void ICall_setImageIndex(IntPtr widget_ptr, uint index);
|
||
|
||
[MethodImplAttribute(MethodImplOptions.InternalCall)]
|
||
extern private static uint ICall_getImageIndex(IntPtr widget_ptr);
|
||
|
||
[MethodImplAttribute(MethodImplOptions.InternalCall)]
|
||
extern private static uint ICall_getItemCount(IntPtr widget_ptr);
|
||
|
||
[MethodImplAttribute(MethodImplOptions.InternalCall)]
|
||
extern private static void ICall_setItemSelect(IntPtr widget_ptr, uint index);
|
||
|
||
[MethodImplAttribute(MethodImplOptions.InternalCall)]
|
||
extern private static uint ICall_getItemSelect(IntPtr widget_ptr);
|
||
|
||
[MethodImplAttribute(MethodImplOptions.InternalCall)]
|
||
extern private static void ICall_resetItemSelect(IntPtr widget_ptr);
|
||
|
||
[MethodImplAttribute(MethodImplOptions.InternalCall)]
|
||
extern private static void ICall_insertItem(IntPtr widget_ptr, uint index, ref IntCoord item);
|
||
|
||
[MethodImplAttribute(MethodImplOptions.InternalCall)]
|
||
extern private static void ICall_addItem(IntPtr widget_ptr, ref IntCoord item);
|
||
|
||
[MethodImplAttribute(MethodImplOptions.InternalCall)]
|
||
extern private static void ICall_setItem(IntPtr widget_ptr, uint index, ref IntCoord item);
|
||
|
||
[MethodImplAttribute(MethodImplOptions.InternalCall)]
|
||
extern private static void ICall_deleteItem(IntPtr widget_ptr, uint index);
|
||
|
||
[MethodImplAttribute(MethodImplOptions.InternalCall)]
|
||
extern private static void ICall_deleteAllItems(IntPtr widget_ptr);
|
||
|
||
[MethodImplAttribute(MethodImplOptions.InternalCall)]
|
||
extern private static void ICall_addItemFrame(IntPtr widget_ptr, uint index, ref IntCoord item);
|
||
|
||
[MethodImplAttribute(MethodImplOptions.InternalCall)]
|
||
extern private static void ICall_insertItemFrame(IntPtr widget_ptr, uint index, uint indexFrame, ref IntCoord item);
|
||
|
||
[MethodImplAttribute(MethodImplOptions.InternalCall)]
|
||
extern private static void ICall_addItemFrameDublicate(IntPtr widget_ptr, uint index, uint indexSourceFrame);
|
||
|
||
[MethodImplAttribute(MethodImplOptions.InternalCall)]
|
||
extern private static void ICall_insertItemFrameDublicate(IntPtr widget_ptr, uint index, uint indexFrame, uint indexSourceFrame);
|
||
|
||
[MethodImplAttribute(MethodImplOptions.InternalCall)]
|
||
extern private static void ICall_setItemFrame(IntPtr widget_ptr, uint index, uint indexFrame, ref IntCoord item);
|
||
|
||
[MethodImplAttribute(MethodImplOptions.InternalCall)]
|
||
extern private static void ICall_deleteItemFrame(IntPtr widget_ptr, uint index, uint indexFrame);
|
||
|
||
[MethodImplAttribute(MethodImplOptions.InternalCall)]
|
||
extern private static void ICall_deleteAllItemFrames(IntPtr widget_ptr, uint index);
|
||
|
||
[MethodImplAttribute(MethodImplOptions.InternalCall)]
|
||
extern private static void ICall_setItemFrameRate(IntPtr widget_ptr, uint index, float rate);
|
||
|
||
[MethodImplAttribute(MethodImplOptions.InternalCall)]
|
||
extern private static float ICall_getItemFrameRate(IntPtr widget_ptr, uint index);
|
||
|
||
//[MethodImplAttribute(MethodImplOptions.InternalCall)]
|
||
//extern private static void ICall_(IntPtr widget_ptr);
|
||
|
||
//[MethodImplAttribute(MethodImplOptions.InternalCall)]
|
||
//extern private static void ICall_(IntPtr widget_ptr);
|
||
|
||
//[MethodImplAttribute(MethodImplOptions.InternalCall)]
|
||
//extern private static void ICall_(IntPtr widget_ptr);
|
||
|
||
//[MethodImplAttribute(MethodImplOptions.InternalCall)]
|
||
//extern private static void ICall_(IntPtr widget_ptr);
|
||
|
||
}
|
||
}
|