Page 39 of 41
Re: Löve Frames - A GUI Library
Posted: Sun Jun 30, 2019 5:45 pm
by pirogronian
Bug report: Colored text doesnt work (as already posted at
https://github.com/linux-man/LoveFrames/issues/2). Quick reproduce: (following wiki):
Code: Select all
local text = {{255, 0, 0, 255}, "Red ", {0, 255, 0, 255}, "Green ", {0, 0, 255, 255}, "Blue"}
object:SetText(text)
Resulted text is grey (with default skin).
Edit: Following updated documentation solved the problem (code which works:
Code: Select all
local text = {{color = {1, 0, 0}}, "Red ", {color = {0, 1, 0}}, "Green ", {color = {0, 0, 1}}, "Blue"}
).
Re: Löve Frames - A GUI Library
Posted: Mon Apr 20, 2020 8:25 pm
by AlexYeCu
Bug report:
Code: Select all
--font = love.graphics.newFont("fonts/Neocyr.ttf", 16); -- bug is presented for both fonts
font = love.graphics.newFont("fonts/DroidSans.ttf", 16);
Code: Select all
global.buttons.start_button = loveframes.Create("imagebutton");
global.buttons.start_button:SetImage(media.images.button_quickstart);
global.buttons.start_button:SetPos(_x_position, _y_position_initial);
global.buttons.start_button:SizeToImage();
global.buttons.start_button:SetText(utilits.Translate("buttons", "quickstart"));
global.buttons.start_button.OnClick = function(object)
mainmenuState.startGame ();
end;
Code: Select all
quickstart = {english = "Quick Start", russian = "Быстрый старт"},
In version version 0.10 this works fine. Only image buttons are affected, textfields are ok.
Another bug report:
Code: Select all
Error: lib/loveframes/objects/text.lua:285: UTF-8 decoding error: Not enough space
Code: Select all
endurance = {english = "endurance", russian = "выносливость"},
speed = {english = "speed", russian = "скорость"},
dexterity = {english = "dexterity", russian = "ловкость"},
flexibility = {english = "flexibility", russian = "гибкость"},
sensory = {english = "sensory", russian = "чувствительность"},
concentration = {english = "concentration", russian = "сосредоточенность"},
Last two strings shows the error.
One more words calling the same error: "обезвреживание".
Re: Löve Frames - A GUI Library
Posted: Wed Apr 22, 2020 8:07 am
by AlexYeCu
Hmm, about the «another bug»: looks like the text file was without Unicode BOM, so…
It has fixed one error, but not all.
On more bug: image buttons, created like this:
Code: Select all
local btn = loveframes.Create("imagebutton");
btn:SetImage(media.images.button_minus);
btn:SetPos(x + 200 + (index - 1) * createpartyState.columnMultiplier, createpartyState.height + 120 + _counter2 * 20);
btn:SizeToImage();
btn:SetText("");
btn.OnClick = function(object)
global.party[index]:StatAddAtCreationMinus (key2, 1, 5);
createpartyState.renew ();
end;
can not be pressed.
Re: Löve Frames - A GUI Library
Posted: Sun Apr 26, 2020 2:28 pm
by linux-man
Hi! Can you create a small app that shows the bugs?
Re: Löve Frames - A GUI Library
Posted: Mon Apr 27, 2020 4:31 pm
by AlexYeCu
linux-man wrote: ↑Sun Apr 26, 2020 2:28 pm
Hi! Can you create a small app that shows the bugs?
Well, main.lua for the bug with image buttons and unreadable text:
Code: Select all
loveframes = require "lib.loveframes"
love.keyboard.setKeyRepeat(true);
function love.load()
local image2 = love.graphics.newImage( "button.pkm" )
button = loveframes.Create("imagebutton");
button:SetImage(image2);
button:SetPos(300, 100);
button:SizeToImage();
button:SetText("СТАРТ"); -- Russian language
button.OnClick = function(object)
end;
end;
function love.update(dt)
loveframes.update(dt);
end;
function love.mousepressed(x,y,button)
loveframes.mousepressed(x, y, button);
end;
function love.mousereleased(x,y,button)
loveframes.mousereleased(x, y, button);
end
function love.draw()
loveframes.draw();
end;
See the comment "Russian language"? In earlier versions of loveframes it works fine.
Re: Löve Frames - A GUI Library
Posted: Mon Apr 27, 2020 5:08 pm
by AlexYeCu
linux-man wrote: ↑Sun Apr 26, 2020 2:28 pm
Hi! Can you create a small app that shows the bugs?
Small textfield + long russian word causes this error:
Code: Select all
Error: lib/loveframes/objects/text.lua:285: UTF-8 decoding error: Not enough space
Code: Select all
loveframes = require "lib.loveframes"
love.keyboard.setKeyRepeat(true);
function love.load()
local back = loveframes.Create("image");
local image = love.graphics.newImage( "background.dds" )
back:SetImage(image);
back:SetPos (0, 0)
font = love.graphics.newFont("DroidSans.ttf", 16);
local textfield = loveframes.Create("text");
textfield:SetPos(120, 120);
textfield:SetWidth(50); -- small text field
textfield:SetFont(font);
local text = "обезвреживание"; --russian text
textfield:SetText(text);
end;
function love.update(dt)
loveframes.update(dt);
end;
function love.keypressed(key)
loveframes.keypressed(button,true);
end
function love.keyreleased(key)
loveframes.keyreleased(button,true);
end
function love.mousepressed(x,y,button)
loveframes.mousepressed(x, y, button);
end
function love.mousereleased(x,y,button)
loveframes.mousereleased(x, y, button);
end
function love.mousemooved(x,y,dx,dy)
end
function love.wheelmoved( x, y )
end;
function love.textinput(text)
loveframes.textinput(text);
end;
function love.draw()
loveframes.draw();
end;
Re: Löve Frames - A GUI Library
Posted: Mon Apr 27, 2020 5:29 pm
by AlexYeCu
linux-man wrote: ↑Sun Apr 26, 2020 2:28 pm
Hi! Can you create a small app that shows the bugs?
Unpressing. Well, in latest version of loveframes tooltip can block the button. Take an image 20x20 size fir this code and you'll not be able to press the button.
Code: Select all
loveframes = require "lib.loveframes"
require 'functions.utilits';
require 'lang.translation'
if jit then
jit.on();
else
print ("No luajit detected!")
end
love.keyboard.setKeyRepeat(true);
function love.load()
local back = loveframes.Create("image");
local image = love.graphics.newImage( "background.dds" )
back:SetImage(image);
back:SetPos (0, 0)
font = love.graphics.newFont("DroidSans.ttf", 16);
local textfield = loveframes.Create("text");
textfield:SetPos(120, 120);
textfield:SetWidth(200);
textfield:SetFont(font);
textfield:SetText("обезвреживание");
local tooltip = loveframes.Create("tooltip");
tooltip:SetObject(textfield);
tooltip:SetPadding(10);
tooltip:SetFont(font);
tooltip:SetOffsetX(-100);
tooltip:SetText("fhzfgklzsvk;fbjjh;kb'dbmkhnskvhAKCPdvl;fgoerui p[dfkfajkepfi[flpawe[fkaopwefawk[k");
local image2 = love.graphics.newImage( "button.pkm" )
button = loveframes.Create("imagebutton");
button:SetImage(image2);
button:SetPos(160, 120);
button:SizeToImage();
button:SetText(""); -- Russian language
button.OnClick = function(object)
end;
end;
function love.update(dt)
loveframes.update(dt);
end;
function love.keypressed(key)
loveframes.keypressed(button,true);
end
function love.keyreleased(key)
loveframes.keyreleased(button,true);
end
function love.mousepressed(x,y,button)
loveframes.mousepressed(x, y, button);
end
function love.mousereleased(x,y,button)
loveframes.mousereleased(x, y, button);
end
function love.mousemooved(x,y,dx,dy)
end
function love.wheelmoved( x, y )
end;
function love.textinput(text)
loveframes.textinput(text);
end;
function love.draw()
loveframes.draw();
end;
There is a draw function in old tooltip.lua which is not presented in new one. And it calls SetDrawOrder function. May be this is the root of the problem?
Re: Löve Frames - A GUI Library
Posted: Tue Apr 28, 2020 12:40 am
by linux-man
Thank you for your help.
The first 2 issues are probably solved. The text was unreadable because the default Sans Serif font don't support cyrillic chars, as you can see with a simple graphics.text().
The real problem was that you couldn't change loveframes font without editing themes, so I normalized the 2 sets of themes (from Nicolai and ingsoc451) to use the same font tables and published them. Now you can define the font loveframes is using without changing theme.
Code: Select all
-- Change fonts on active skin
loveframes.GetActiveSkin().controls.smallfont = love.graphics.newFont( "Arial.ttf", 10)
loveframes.GetActiveSkin().controls.imagebuttonfont = love.graphics.newFont( "Arial.ttf", 15)
-- Change fonts on all registered skins
for _, skin in pairs(loveframes.skins) do
skin.controls.smallfont = love.graphics.newFont( "Arial.ttf", 10)
skin.controls.imagebuttonfont = love.graphics.newFont( "Arial.ttf", 15)
end
I tried to solve the second issue doing an extreme conversion to utf8 library (was already there, but only used sometimes). Now almost all :len, :sub, :gsub and :char are using utf8 versions. I suspect this change can break something, so please throw everything you can to test it.
I'll look at tooltip tomorrow.
Re: Löve Frames - A GUI Library
Posted: Tue Apr 28, 2020 4:03 am
by AlexYeCu
The real problem was that you couldn't change loveframes
Hm, I thought that font is wrong, but haven't check this… Guess this issue appeared after removing SetActiveSkin from the project…
so please throw everything you can to test it
Test how? I mean I'll see an error of course, and I can try different textfield sizes and words, but may be something else can help to find and fix the problem?
Re: Löve Frames - A GUI Library
Posted: Tue Apr 28, 2020 12:44 pm
by linux-man
That's ok. I only appreciate your feedback. As I suspected, textinput is broken with this changes (cursor movement). I might have to rollback some.