list size on android

This commit is contained in:
Edouard Dupin 2012-02-05 22:04:54 +01:00
parent 182879be3e
commit 78bada11a7
10 changed files with 136 additions and 47 deletions

View File

@ -18,6 +18,8 @@ all:
@echo $(CADRE_COTERS)
@echo $(CADRE_HAUT_BAS)
@rm -rf bin
@echo $(F_ROUGE)" (sh) Clear previous sources "$(F_NORMALE)
@rm -rf src jni/ewolAndroidAbstraction.cpp
@echo $(F_ROUGE)" (sh) Create folder : $(JAVA_FOLDER)/ "$(F_NORMALE)
@ -50,7 +52,7 @@ install: all
@echo $(CADRE_HAUT_BAS)
@# $(PROJECT_SDK)/platform-tools/adb kill-server
@# install application
sudo $(PROJECT_SDK)/platform-tools/adb install -r ./bin/$(PROJECT_NAME)-debug.apk
$(PROJECT_SDK)/platform-tools/adb install -r ./bin/$(PROJECT_NAME)-debug.apk
clean:
@echo $(CADRE_HAUT_BAS)

View File

@ -57,35 +57,49 @@ extern "C"
void Java_com___PROJECT_VENDOR_____PROJECT_PACKAGE_____PROJECT_NAME___ActivityOnCreate( JNIEnv* env )
{
EDN_DEBUG("Activity On Create");
EDN_DEBUG("*******************************************");
EDN_DEBUG("** Activity On Create **");
EDN_DEBUG("*******************************************");
EWOL_SystemStart();
}
void Java_com___PROJECT_VENDOR_____PROJECT_PACKAGE_____PROJECT_NAME___ActivityOnStart( JNIEnv* env )
{
EDN_DEBUG("Activity On Start");
EDN_DEBUG("*******************************************");
EDN_DEBUG("** Activity On Start **");
EDN_DEBUG("*******************************************");
}
void Java_com___PROJECT_VENDOR_____PROJECT_PACKAGE_____PROJECT_NAME___ActivityOnReStart( JNIEnv* env )
{
EDN_DEBUG("Activity On Re-Start");
EDN_DEBUG("*******************************************");
EDN_DEBUG("** Activity On Re-Start **");
EDN_DEBUG("*******************************************");
}
void Java_com___PROJECT_VENDOR_____PROJECT_PACKAGE_____PROJECT_NAME___ActivityOnResume( JNIEnv* env )
{
EDN_DEBUG("Activity On Resume");
EDN_DEBUG("*******************************************");
EDN_DEBUG("** Activity On Resume **");
EDN_DEBUG("*******************************************");
}
void Java_com___PROJECT_VENDOR_____PROJECT_PACKAGE_____PROJECT_NAME___ActivityOnPause( JNIEnv* env )
{
EDN_DEBUG("Activity On Pause");
EDN_DEBUG("*******************************************");
EDN_DEBUG("** Activity On Pause **");
EDN_DEBUG("*******************************************");
// All the openGl has been destroyed ...
// TODO : Mark all the texture to be reloaded ...
EWOL_NativeGLDestroy();
}
void Java_com___PROJECT_VENDOR_____PROJECT_PACKAGE_____PROJECT_NAME___ActivityOnStop( JNIEnv* env )
{
EDN_DEBUG("Activity On Stop");
EDN_DEBUG("*******************************************");
EDN_DEBUG("** Activity On Stop **");
EDN_DEBUG("*******************************************");
}
void Java_com___PROJECT_VENDOR_____PROJECT_PACKAGE_____PROJECT_NAME___ActivityOnDestroy( JNIEnv* env )
{
EDN_DEBUG("Activity On Destroy");
EDN_DEBUG("*******************************************");
EDN_DEBUG("** Activity On Destroy **");
EDN_DEBUG("*******************************************");
EWOL_SystemStop();
}

View File

@ -80,13 +80,6 @@ static int32_t simpleSQRT(int32_t value)
return val;
}
void ewol::InitFont(void)
{
int32_t error = FT_Init_FreeType( &library );
if(0 != error) {
EWOL_CRITICAL(" when loading FreeType Librairy ...");
}
}
// keep only one instance of every font in freetype
class FTFontInternal
@ -481,10 +474,41 @@ void ewol::SetFontFolder(etk::String folderName)
EWOL_INFO("New default font folder name=\"" << s_currentFolderName << "\"");
}
void ewol::InitFont(void)
{
EWOL_DEBUG("==> Init Font-Manager");
int32_t error = FT_Init_FreeType( &library );
if(0 != error) {
EWOL_CRITICAL(" when loading FreeType Librairy ...");
}
// prevent android error ==> can create memory leak but I prefer
s_currentFolderName = "";
s_currentDefaultFontName = "";
m_listLoadedTTFont.Clear();
s_currentDefaultFontId = -1;
}
void ewol::UnInitFont(void)
{
EWOL_TODO("later");
EWOL_DEBUG("==> Un-Init Font-Manager");
/*int32_t error = FT_Done_FreeType( library );
library = NULL;
if(0 != error) {
EWOL_CRITICAL(" when Un-loading FreeType Librairy ...");
}
*/
/*
s_currentFolderName = "";
s_currentDefaultFontName = "";
s_currentDefaultFontId = -1;
for(int32_t iii=0; iii<m_listLoadedTTFont.Size(); iii++) {
if (NULL != m_listLoadedTTFont[iii]) {
delete(m_listLoadedTTFont[iii]);
}
m_listLoadedTTFont[iii] = NULL;
}
m_listLoadedTTFont.Clear();
*/
}
void ewol::SetDefaultFont(etk::String fontName, int32_t size)

View File

@ -343,6 +343,7 @@ static pthread_mutex_t localMutex;
void ewol::texture::Init(void)
{
EWOL_DEBUG("==> Init Texture-Manager");
// create interface mutex :
int ret = pthread_mutex_init(&localMutex, NULL);
EWOL_ASSERT(ret == 0, "Error creating Mutex ...");
@ -350,6 +351,14 @@ void ewol::texture::Init(void)
void ewol::texture::UnInit(void)
{
EWOL_DEBUG("==> Un-Init Texture-Manager");
for (int32_t iii=0; iii<listLoadedTexture.Size(); iii++) {
if (listLoadedTexture[iii] != NULL) {
delete(listLoadedTexture[iii]);
}
listLoadedTexture[iii] = NULL;
}
listLoadedTexture.Clear();
int ret = pthread_mutex_destroy(&localMutex);
EWOL_ASSERT(ret == 0, "Error destroying Mutex ...");
}
@ -366,6 +375,10 @@ void ewol::UpdateTextureContextIsDestroy(void)
&& NULL != listLoadedTexture[iii]->m_data)
{
listLoadedTexture[iii]->m_loaded = false;
EWOL_INFO("TEXTURE: Disable [" << iii << "]=(" << listLoadedTexture[iii]->m_width << "px," <<
listLoadedTexture[iii]->m_height << "px) in file:" <<
listLoadedTexture[iii]->m_filename << " OGl_Id=" <<listLoadedTexture[iii]->m_openGlTextureID);
//glDeleteTextures(1, &listLoadedTexture[iii]->m_openGlTextureID);
}
}
pthread_mutex_unlock(&localMutex);
@ -394,8 +407,8 @@ void ewol::UpdateTextureContext(void)
glTexParameteri(listLoadedTexture[iii]->m_target, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(listLoadedTexture[iii]->m_target, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
EWOL_INFO("TEXTURE: Add [" << iii << "]=(" << listLoadedTexture[iii]->m_width << "px," <<
listLoadedTexture[iii]->m_height << "px) in file:" <<
listLoadedTexture[iii]->m_filename << " OGl_Id=" <<textureid);
listLoadedTexture[iii]->m_height << "px) in file:" <<
listLoadedTexture[iii]->m_filename << " OGl_Id=" <<textureid);
glTexImage2D(listLoadedTexture[iii]->m_target,
listLoadedTexture[iii]->m_level,
listLoadedTexture[iii]->m_internalFormat,

View File

@ -45,15 +45,19 @@ static ewol::Widget * m_focusWidgetCurrent = NULL;
void ewol::widgetManager::Init(void)
{
EWOL_DEBUG("Init Widget manager");
EWOL_DEBUG("==> Init Widget-Manager");
// create interface mutex :
int ret = pthread_mutex_init(&localMutex, NULL);
EWOL_ASSERT(ret == 0, "Error creating Mutex ...");
// prevent android error ==> can create memory leak but I prefer
m_widgetList.Clear();
m_focusWidgetDefault = NULL;
m_focusWidgetCurrent = NULL;
}
void ewol::widgetManager::UnInit(void)
{
EWOL_DEBUG("Un-Init Widget manager");
EWOL_DEBUG("==> Un-Init Widget-Manager");
EWOL_INFO("Realease all FOCUS");
ewol::widgetManager::FocusSetDefault(NULL);
ewol::widgetManager::FocusRelease();

View File

@ -93,7 +93,7 @@ void EWOL_NativeResize(int w, int h );
static void* BaseAppEntry(void* param)
{
bool requestEndProcessing = false;
EWOL_DEBUG("BThread Init (START)");
EWOL_DEBUG("==> Init BThread (START)");
EWOL_INFO("v" EWOL_VERSION_TAG_NAME);
EWOL_INFO("Build Date: " VERSION_BUILD_TIME);
@ -103,7 +103,7 @@ static void* BaseAppEntry(void* param)
ewol::InitFont();
APP_Init();
int32_t countNbEvent = 0;
EWOL_DEBUG("BThread Init (END)");
EWOL_DEBUG("==> Init BThread (END)");
while(false == requestEndProcessing) {
ewol::threadMsg::threadMsgContent_ts data;
ewol::threadMsg::WaitMessage(androidJniMsg, data);
@ -178,7 +178,7 @@ static void* BaseAppEntry(void* param)
}
}
}
EWOL_DEBUG("BThread Un-Init (START)");
EWOL_DEBUG("==> Un-Init BThread (START)");
// unset all windows
ewol::DisplayWindows(NULL);
@ -189,7 +189,7 @@ static void* BaseAppEntry(void* param)
ewol::UnInitFont();
ewol::widgetManager::UnInit();
ewol::theme::UnInit();
EWOL_DEBUG("BThread Un-Init (END)");
EWOL_DEBUG("==> Un-Init BThread (END)");
pthread_exit(NULL);
}

View File

@ -29,37 +29,51 @@
#undef __class__
#define __class__ "ewol::theme"
static ewol::theme::Theme localTheme;
static ewol::theme::Theme * localTheme = NULL;
void ewol::theme::Init(void)
{
EWOL_INFO("Init theme system");
EWOL_DEBUG("==> Init Theme-Manager");
localTheme = new ewol::theme::Theme();
}
void ewol::theme::UnInit(void)
{
EWOL_INFO("Un-Init theme system");
EWOL_DEBUG("==> Un-Init Theme-Manager");
if (NULL != localTheme) {
delete(localTheme);
localTheme = NULL;
}
}
void ewol::theme::LoadDefault(etk::File filename)
{
EWOL_INFO("Load default Theme : " << filename);
localTheme.Load(filename, true);
if (NULL == localTheme) {
return;
}
localTheme->Load(filename, true);
}
void ewol::theme::Load(etk::File filename)
{
EWOL_INFO("Add personal theme : " << filename);
localTheme.Load(filename, false);
if (NULL == localTheme) {
return;
}
localTheme->Load(filename, false);
}
int32_t ewol::theme::GetObjectId(etk::String name)
{
return localTheme.GetObjectId(name);
if (NULL == localTheme) {
return 0;
}
return localTheme->GetObjectId(name);
}
// ???? GetObjectType(int32_t id);
@ -67,27 +81,36 @@ int32_t ewol::theme::GetObjectId(etk::String name)
void ewol::theme::Generate(int32_t id, int32_t frameId, ewol::OObject2DColored & newObject, etkFloat_t posX, etkFloat_t posY, etkFloat_t sizeX, etkFloat_t sizeY)
{
if (NULL == localTheme) {
return;
}
if (id<0) {
return;
}
localTheme.Generate(id, frameId, newObject, posX, posY, sizeX, sizeY);
localTheme->Generate(id, frameId, newObject, posX, posY, sizeX, sizeY);
}
int32_t ewol::theme::GetNbFrame(int32_t id)
{
if (NULL == localTheme) {
return 0;
}
if (id<0) {
return 0;
}
return localTheme.GetNbFrame(id);
return localTheme->GetNbFrame(id);
}
int32_t ewol::theme::GetFrameId(int32_t id, etk::String & frameName)
{
if (NULL == localTheme) {
return 0;
}
if (id<0) {
return 0;
}
return localTheme.GetFrameId(id, frameName);
return localTheme->GetFrameId(id, frameName);
}

View File

@ -34,7 +34,12 @@
void ewol::List::Init(void)
{
m_paddingSize = 2;
m_paddingSizeX = 2;
#ifdef __PLATFORM__Android
m_paddingSizeY = 10;
#else
m_paddingSizeY = 2;
#endif
SetCanHaveFocus(true);
}
@ -78,8 +83,8 @@ void ewol::List::OnRegenerateDisplay(void)
if (true==m_userFillY) {
tmpOriginY = 0;
}*/
tmpOriginX += m_paddingSize;
tmpOriginY += m_paddingSize;
tmpOriginX += m_paddingSizeX;
tmpOriginY += m_paddingSizeY;
int32_t fontId = GetDefaultFontId();
//int32_t minWidth = ewol::GetWidth(fontId, m_label.c_str());
@ -95,7 +100,7 @@ void ewol::List::OnRegenerateDisplay(void)
BGOObjects->SetColor(basicBG);
BGOObjects->Rectangle(0, 0, m_size.x, m_size.y);
uint32_t displayableRaw = m_size.y / (minHeight + 2*m_paddingSize);
uint32_t displayableRaw = m_size.y / (minHeight + 2*m_paddingSizeY);
// We display only compleate lines ...
for(uint32_t iii=0; iii<nbRaw && iii<displayableRaw; iii++) {
@ -104,13 +109,13 @@ void ewol::List::OnRegenerateDisplay(void)
color_ts bg;
GetElement(0, iii, myTextToWrite, fg, bg);
BGOObjects->SetColor(bg);
BGOObjects->Rectangle(0, tmpOriginYBG, m_size.x, minHeight+2*m_paddingSize);
tmpOriginYBG += minHeight+2*m_paddingSize;
BGOObjects->Rectangle(0, tmpOriginYBG, m_size.x, minHeight+2*m_paddingSizeY);
tmpOriginYBG += minHeight+2*m_paddingSizeY;
ewol::OObject2DText * tmpText = new ewol::OObject2DText("", -1, fg);
tmpText->Text(tmpOriginX, tmpOriginY, myTextToWrite.c_str(), m_size.x - (2*m_paddingSize));
tmpText->Text(tmpOriginX, tmpOriginY, myTextToWrite.c_str(), m_size.x - (2*m_paddingSizeX));
AddOObject(tmpText);
tmpOriginY += minHeight + 2* m_paddingSize;
tmpOriginY += minHeight + 2* m_paddingSizeY;
}
AddOObject(BGOObjects, "ListDeco", 0);
//ewol::OObject2DText * tmpText = new ewol::OObject2DText("", -1, m_textColorFg);
@ -127,7 +132,7 @@ bool ewol::List::OnEventInput(int32_t IdInput, eventInputType_te typeEvent, etkF
//int32_t minWidth = ewol::GetWidth(fontId, m_label.c_str());
int32_t minHeight = ewol::GetHeight(fontId);
int32_t rawID = (y - m_origin.y) / (minHeight + 2*m_paddingSize);
int32_t rawID = (y - m_origin.y) / (minHeight + 2*m_paddingSizeY);
//EWOL_DEBUG("OnEventInput(" << IdInput << "," << typeEvent << "," << 0 << "," << rawID << "," << x <<"," << y << ");");
return OnItemEvent(IdInput, typeEvent, 0, rawID, x, y);
}

View File

@ -39,7 +39,8 @@ namespace ewol {
virtual bool CalculateMinSize(void);
void SetLabel(etk::String newLabel);
private:
int32_t m_paddingSize;
int32_t m_paddingSizeX;
int32_t m_paddingSizeY;
int32_t m_displayStartRaw; //!< Current starting diaplayed raw
int32_t m_displayCurrentNbLine; //!< Number of line in the display
public:

View File

@ -337,10 +337,13 @@ ewol::FileChooser::FileChooser(void)
FileChooserFileList * myListFile = NULL;
FileChooserFolderList * myListFolder = NULL;
ewol::Label * myLabel = NULL;
m_folder = "/";
SetDisplayRatio(0.80);
#ifdef __PLATFORM__Android
m_folder = "/mnt/sdcard/";
SetDisplayRatio(0.90);
#else
m_folder = "/home/";
SetDisplayRatio(0.80);
#endif
mySizerVert = new ewol::SizerVert();
mySizerVert->LockExpendContamination(true);