
git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1437 8e941d3f-bd1b-0410-a28a-d453659cc2b4
307 lines
11 KiB
ObjectPascal
307 lines
11 KiB
ObjectPascal
(*
|
|
* Copyright (C) 2010 The Android Open Source Project
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*)
|
|
|
|
unit configuration;
|
|
|
|
interface
|
|
|
|
uses ctypes, asset_manager;
|
|
|
|
const
|
|
LibName = 'libandroid.so';
|
|
|
|
type
|
|
PAConfiguration = ^AConfiguration;
|
|
AConfiguration = record end;
|
|
|
|
const
|
|
ACONFIGURATION_ORIENTATION_ANY = $0000;
|
|
ACONFIGURATION_ORIENTATION_PORT = $0001;
|
|
ACONFIGURATION_ORIENTATION_LAND = $0002;
|
|
ACONFIGURATION_ORIENTATION_SQUARE = $0003;
|
|
ACONFIGURATION_TOUCHSCREEN_ANY = $0000;
|
|
ACONFIGURATION_TOUCHSCREEN_NOTOUCH = $0001;
|
|
ACONFIGURATION_TOUCHSCREEN_STYLUS = $0002;
|
|
ACONFIGURATION_TOUCHSCREEN_FINGER = $0003;
|
|
ACONFIGURATION_DENSITY_DEFAULT = 0;
|
|
ACONFIGURATION_DENSITY_LOW = 120;
|
|
ACONFIGURATION_DENSITY_MEDIUM = 160;
|
|
ACONFIGURATION_DENSITY_HIGH = 240;
|
|
ACONFIGURATION_DENSITY_NONE = $ffff;
|
|
ACONFIGURATION_KEYBOARD_ANY = $0000;
|
|
ACONFIGURATION_KEYBOARD_NOKEYS = $0001;
|
|
ACONFIGURATION_KEYBOARD_QWERTY = $0002;
|
|
ACONFIGURATION_KEYBOARD_12KEY = $0003;
|
|
ACONFIGURATION_NAVIGATION_ANY = $0000;
|
|
ACONFIGURATION_NAVIGATION_NONAV = $0001;
|
|
ACONFIGURATION_NAVIGATION_DPAD = $0002;
|
|
ACONFIGURATION_NAVIGATION_TRACKBALL = $0003;
|
|
ACONFIGURATION_NAVIGATION_WHEEL = $0004;
|
|
ACONFIGURATION_KEYSHIDDEN_ANY = $0000;
|
|
ACONFIGURATION_KEYSHIDDEN_NO = $0001;
|
|
ACONFIGURATION_KEYSHIDDEN_YES = $0002;
|
|
ACONFIGURATION_KEYSHIDDEN_SOFT = $0003;
|
|
ACONFIGURATION_NAVHIDDEN_ANY = $0000;
|
|
ACONFIGURATION_NAVHIDDEN_NO = $0001;
|
|
ACONFIGURATION_NAVHIDDEN_YES = $0002;
|
|
ACONFIGURATION_SCREENSIZE_ANY = $00;
|
|
ACONFIGURATION_SCREENSIZE_SMALL = $01;
|
|
ACONFIGURATION_SCREENSIZE_NORMAL = $02;
|
|
ACONFIGURATION_SCREENSIZE_LARGE = $03;
|
|
ACONFIGURATION_SCREENSIZE_XLARGE = $04;
|
|
ACONFIGURATION_SCREENLONG_ANY = $00;
|
|
ACONFIGURATION_SCREENLONG_NO = $1;
|
|
ACONFIGURATION_SCREENLONG_YES = $2;
|
|
ACONFIGURATION_UI_MODE_TYPE_ANY = $00;
|
|
ACONFIGURATION_UI_MODE_TYPE_NORMAL = $01;
|
|
ACONFIGURATION_UI_MODE_TYPE_DESK = $02;
|
|
ACONFIGURATION_UI_MODE_TYPE_CAR = $03;
|
|
ACONFIGURATION_UI_MODE_NIGHT_ANY = $00;
|
|
ACONFIGURATION_UI_MODE_NIGHT_NO = $1;
|
|
ACONFIGURATION_UI_MODE_NIGHT_YES = $2;
|
|
ACONFIGURATION_MCC = $0001;
|
|
ACONFIGURATION_MNC = $0002;
|
|
ACONFIGURATION_LOCALE = $0004;
|
|
ACONFIGURATION_TOUCHSCREEN = $0008;
|
|
ACONFIGURATION_KEYBOARD = $0010;
|
|
ACONFIGURATION_KEYBOARD_HIDDEN = $0020;
|
|
ACONFIGURATION_NAVIGATION = $0040;
|
|
ACONFIGURATION_ORIENTATION = $0080;
|
|
ACONFIGURATION_DENSITY = $0100;
|
|
ACONFIGURATION_SCREEN_SIZE = $0200;
|
|
ACONFIGURATION_VERSION = $0400;
|
|
ACONFIGURATION_SCREEN_LAYOUT = $0800;
|
|
ACONFIGURATION_UI_MODE = $1000;
|
|
|
|
(**
|
|
* Create a new AConfiguration, initialized with no values set.
|
|
*)
|
|
function AConfiguration_new: PAConfiguration; cdecl; external LibName;
|
|
|
|
(**
|
|
* Free an AConfiguration that was previously created with
|
|
* AConfiguration_new().
|
|
*)
|
|
procedure AConfiguration_delete(config: PAConfiguration); cdecl; external LibName;
|
|
|
|
(**
|
|
* Create and return a new AConfiguration based on the current configuration in
|
|
* use in the given AssetManager.
|
|
*)
|
|
procedure AConfiguration_fromAssetManager(out_: PAConfiguration; am: PAAssetManager); cdecl; external LibName;
|
|
|
|
(**
|
|
* Copy the contents of 'src' to 'dest'.
|
|
*)
|
|
procedure AConfiguration_copy(dest, src: PAConfiguration); cdecl; external LibName;
|
|
|
|
(**
|
|
* Return the current MCC set in the configuration. 0 if not set.
|
|
*)
|
|
function AConfiguration_getMcc(config: PAConfiguration): cint32; cdecl; external LibName;
|
|
|
|
(**
|
|
* Set the current MCC in the configuration. 0 to clear.
|
|
*)
|
|
procedure AConfiguration_setMcc(config: PAConfiguration; mcc: cint32); cdecl; external LibName;
|
|
|
|
(**
|
|
* Return the current MNC set in the configuration. 0 if not set.
|
|
*)
|
|
function AConfiguration_getMnc(config: PAConfiguration): cint32; cdecl; external LibName;
|
|
|
|
(**
|
|
* Set the current MNC in the configuration. 0 to clear.
|
|
*)
|
|
procedure AConfiguration_setMnc(config: PAConfiguration; mnc: cint32); cdecl; external LibName;
|
|
|
|
(**
|
|
* Return the current language code set in the configuration. The output will
|
|
* be filled with an array of two characters. They are not 0-terminated. If
|
|
* a language is not set, they will be 0.
|
|
*)
|
|
procedure AConfiguration_getLanguage(config: PAConfiguration; outLanguage: Pchar); cdecl; external LibName;
|
|
|
|
(**
|
|
* Set the current language code in the configuration, from the first two
|
|
* characters in the string.
|
|
*)
|
|
procedure AConfiguration_setLanguage(config: PAConfiguration; language: Pchar); cdecl; external LibName;
|
|
|
|
(**
|
|
* Return the current country code set in the configuration. The output will
|
|
* be filled with an array of two characters. They are not 0-terminated. If
|
|
* a country is not set, they will be 0.
|
|
*)
|
|
procedure AConfiguration_getCountry(config: PAConfiguration; outCountry: Pchar); cdecl; external LibName;
|
|
|
|
(**
|
|
* Set the current country code in the configuration, from the first two
|
|
* characters in the string.
|
|
*)
|
|
procedure AConfiguration_setCountry(config: PAConfiguration; country: Pchar); cdecl; external LibName;
|
|
|
|
(**
|
|
* Return the current ACONFIGURATION_ORIENTATION_* set in the configuration.
|
|
*)
|
|
function AConfiguration_getOrientation(config: PAConfiguration): cint32; cdecl; external LibName;
|
|
|
|
(**
|
|
* Set the current orientation in the configuration.
|
|
*)
|
|
procedure AConfiguration_setOrientation(config: PAConfiguration; orientation: cint32); cdecl; external LibName;
|
|
|
|
(**
|
|
* Return the current ACONFIGURATION_TOUCHSCREEN_* set in the configuration.
|
|
*)
|
|
function AConfiguration_getTouchscreen(config: PAConfiguration): cint32; cdecl; external LibName;
|
|
|
|
(**
|
|
* Set the current touchscreen in the configuration.
|
|
*)
|
|
procedure AConfiguration_setTouchscreen(config: PAConfiguration; touchscreen: cint32); cdecl; external LibName;
|
|
|
|
(**
|
|
* Return the current ACONFIGURATION_DENSITY_* set in the configuration.
|
|
*)
|
|
function AConfiguration_getDensity(config: PAConfiguration): cint32; cdecl; external LibName;
|
|
|
|
(**
|
|
* Set the current density in the configuration.
|
|
*)
|
|
procedure AConfiguration_setDensity(config: PAConfiguration; density: cint32); cdecl; external LibName;
|
|
|
|
(**
|
|
* Return the current ACONFIGURATION_KEYBOARD_* set in the configuration.
|
|
*)
|
|
function AConfiguration_getKeyboard(config: PAConfiguration): cint32; cdecl; external LibName;
|
|
|
|
(**
|
|
* Set the current keyboard in the configuration.
|
|
*)
|
|
procedure AConfiguration_setKeyboard(config: PAConfiguration; keyboard: cint32); cdecl; external LibName;
|
|
|
|
(**
|
|
* Return the current ACONFIGURATION_NAVIGATION_* set in the configuration.
|
|
*)
|
|
function AConfiguration_getNavigation(config: PAConfiguration): cint32; cdecl; external LibName;
|
|
|
|
(**
|
|
* Set the current navigation in the configuration.
|
|
*)
|
|
procedure AConfiguration_setNavigation(config: PAConfiguration; navigation: cint32); cdecl; external LibName;
|
|
|
|
(**
|
|
* Return the current ACONFIGURATION_KEYSHIDDEN_* set in the configuration.
|
|
*)
|
|
function AConfiguration_getKeysHidden(config: PAConfiguration): cint32; cdecl; external LibName;
|
|
|
|
(**
|
|
* Set the current keys hidden in the configuration.
|
|
*)
|
|
procedure AConfiguration_setKeysHidden(config: PAConfiguration; keysHidden: cint32); cdecl; external LibName;
|
|
|
|
(**
|
|
* Return the current ACONFIGURATION_NAVHIDDEN_* set in the configuration.
|
|
*)
|
|
function AConfiguration_getNavHidden(config: PAConfiguration): cint32; cdecl; external LibName;
|
|
|
|
(**
|
|
* Set the current nav hidden in the configuration.
|
|
*)
|
|
procedure AConfiguration_setNavHidden(config: PAConfiguration; navHidden: cint32); cdecl; external LibName;
|
|
|
|
(**
|
|
* Return the current SDK (API) version set in the configuration.
|
|
*)
|
|
function AConfiguration_getSdkVersion(config: PAConfiguration): cint32; cdecl; external LibName;
|
|
|
|
(**
|
|
* Set the current SDK version in the configuration.
|
|
*)
|
|
procedure AConfiguration_setSdkVersion(config: PAConfiguration; sdkVersion: cint32); cdecl; external LibName;
|
|
|
|
(**
|
|
* Return the current ACONFIGURATION_SCREENSIZE_* set in the configuration.
|
|
*)
|
|
function AConfiguration_getScreenSize(config: PAConfiguration): cint32; cdecl; external LibName;
|
|
|
|
(**
|
|
* Set the current screen size in the configuration.
|
|
*)
|
|
procedure AConfiguration_setScreenSize(config: PAConfiguration; screenSize: cint32); cdecl; external LibName;
|
|
|
|
(**
|
|
* Return the current ACONFIGURATION_SCREENLONG_* set in the configuration.
|
|
*)
|
|
function AConfiguration_getScreenLong(config: PAConfiguration): cint32; cdecl; external LibName;
|
|
|
|
(**
|
|
* Set the current screen long in the configuration.
|
|
*)
|
|
procedure AConfiguration_setScreenLong(config: PAConfiguration; screenLong: cint32); cdecl; external LibName;
|
|
|
|
(**
|
|
* Return the current ACONFIGURATION_UI_MODE_TYPE_* set in the configuration.
|
|
*)
|
|
function AConfiguration_getUiModeType(config: PAConfiguration): cint32; cdecl; external LibName;
|
|
|
|
(**
|
|
* Set the current UI mode type in the configuration.
|
|
*)
|
|
procedure AConfiguration_setUiModeType(config: PAConfiguration; uiModeType: cint32); cdecl; external LibName;
|
|
|
|
(**
|
|
* Return the current ACONFIGURATION_UI_MODE_NIGHT_* set in the configuration.
|
|
*)
|
|
function AConfiguration_getUiModeNight(config: PAConfiguration): cint32; cdecl; external LibName;
|
|
|
|
(**
|
|
* Set the current UI mode night in the configuration.
|
|
*)
|
|
procedure AConfiguration_setUiModeNight(config: PAConfiguration; uiModeNight: cint32); cdecl; external LibName;
|
|
|
|
(**
|
|
* Perform a diff between two configurations. Returns a bit mask of
|
|
* ACONFIGURATION_* constants, each bit set meaning that configuration element
|
|
* is different between them.
|
|
*)
|
|
function AConfiguration_diff(config1, config2: PAConfiguration): cint32; cdecl; external LibName;
|
|
|
|
(**
|
|
* Determine whether 'base' is a valid configuration for use within the
|
|
* environment 'requested'. Returns 0 if there are any values in 'base'
|
|
* that conflict with 'requested'. Returns 1 if it does not conflict.
|
|
*)
|
|
function AConfiguration_match(base, requested: PAConfiguration): cint32; cdecl; external LibName;
|
|
|
|
(**
|
|
* Determine whether the configuration in 'test' is better than the existing
|
|
* configuration in 'base'. If 'requested' is non-NULL, this decision is based
|
|
* on the overall configuration given there. If it is NULL, this decision is
|
|
* simply based on which configuration is more specific. Returns non-0 if
|
|
* 'test' is better than 'base'.
|
|
*
|
|
* This assumes you have already filtered the configurations with
|
|
* AConfiguration_match().
|
|
*)
|
|
function AConfiguration_isBetterThan(base, test, requested: PAConfiguration) : cint32; cdecl; external LibName;
|
|
|
|
implementation
|
|
|
|
end.
|
|
|