• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*******************************************************************************
2  * Copyright 2011 See AUTHORS file.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *   http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  ******************************************************************************/
16 
17 package com.badlogic.gdx.tests;
18 
19 import com.badlogic.gdx.Gdx;
20 import com.badlogic.gdx.graphics.Color;
21 import com.badlogic.gdx.graphics.GL20;
22 import com.badlogic.gdx.graphics.Texture.TextureFilter;
23 import com.badlogic.gdx.graphics.g2d.BitmapFont;
24 import com.badlogic.gdx.graphics.g2d.SpriteBatch;
25 import com.badlogic.gdx.graphics.glutils.ShapeRenderer;
26 import com.badlogic.gdx.graphics.glutils.ShapeRenderer.ShapeType;
27 import com.badlogic.gdx.scenes.scene2d.Actor;
28 import com.badlogic.gdx.scenes.scene2d.Stage;
29 import com.badlogic.gdx.scenes.scene2d.ui.Label;
30 import com.badlogic.gdx.scenes.scene2d.ui.Skin;
31 import com.badlogic.gdx.scenes.scene2d.ui.Table;
32 import com.badlogic.gdx.tests.utils.GdxTest;
33 import com.badlogic.gdx.utils.Align;
34 import com.badlogic.gdx.utils.viewport.ScreenViewport;
35 
36 public class LabelTest extends GdxTest {
37 	Skin skin;
38 	Stage stage;
39 	SpriteBatch batch;
40 	Actor root;
41 	ShapeRenderer renderer;
42 
43 	@Override
create()44 	public void create () {
45 		batch = new SpriteBatch();
46 		renderer = new ShapeRenderer();
47 		skin = new Skin(Gdx.files.internal("data/uiskin.json"));
48 		skin.getAtlas().getTextures().iterator().next().setFilter(TextureFilter.Nearest, TextureFilter.Nearest);
49 		skin.getFont("default-font").getData().markupEnabled = true;
50 		float scale = 1;
51 		skin.getFont("default-font").getData().setScale(scale);
52 		stage = new Stage(new ScreenViewport());
53 		Gdx.input.setInputProcessor(stage);
54 
55 		Table table = new Table();
56 		stage.addActor(table);
57 		table.setPosition(200, 65);
58 
59 		table.debug();
60 		table.add(new Label("This is regular text.", skin));
61 		table.row();
62 		table.add(new Label("This is regular text\nwith a newline.", skin));
63 		table.row();
64 		Label label3 = new Label("This is [RED]regular text\n\nwith newlines,\naligned bottom, right.", skin);
65 		label3.setColor(Color.GREEN);
66 		label3.setAlignment(Align.bottom | Align.right);
67 		table.add(label3).minWidth(200 * scale).minHeight(110 * scale).fill();
68 		table.row();
69 		Label label4 = new Label("This is regular text with NO newlines, wrap enabled and aligned bottom, right.", skin);
70 		label4.setWrap(true);
71 		label4.setAlignment(Align.bottom | Align.right);
72 		table.add(label4).minWidth(200 * scale).minHeight(110 * scale).fill();
73 		table.row();
74 		Label label5 = new Label("This is regular text with\n\nnewlines, wrap\nenabled and aligned bottom, right.", skin);
75 		label5.setWrap(true);
76 		label5.setAlignment(Align.bottom | Align.right);
77 		table.add(label5).minWidth(200 * scale).minHeight(110 * scale).fill();
78 
79 		table.pack();
80 	}
81 
82 	@Override
dispose()83 	public void dispose () {
84 		stage.dispose();
85 		skin.dispose();
86 	}
87 
88 	@Override
render()89 	public void render () {
90 		Gdx.gl.glClearColor(0.2f, 0.2f, 0.2f, 1);
91 		Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);
92 
93 		stage.act(Math.min(Gdx.graphics.getDeltaTime(), 1 / 30f));
94 		stage.draw();
95 
96 		float x = 40, y = 40;
97 
98 		BitmapFont font = skin.getFont("default-font");
99 		batch.begin();
100 		font.draw(batch, "The quick brown fox jumped over the lazy cow.", x, y);
101 		batch.end();
102 
103 		drawLine(x, y - font.getDescent(), x + 1000, y - font.getDescent());
104 		drawLine(x, y - font.getCapHeight() + font.getDescent(), x + 1000, y - font.getCapHeight() + font.getDescent());
105 	}
106 
drawLine(float x1, float y1, float x2, float y2)107 	public void drawLine (float x1, float y1, float x2, float y2) {
108 		renderer.setProjectionMatrix(batch.getProjectionMatrix());
109 		renderer.begin(ShapeType.Line);
110 		renderer.line(x1, y1, x2, y2);
111 		renderer.end();
112 	}
113 
114 	@Override
resize(int width, int height)115 	public void resize (int width, int height) {
116 		stage.getViewport().update(width, height, true);
117 	}
118 }
119